본문 영역으로 바로가기

[전공] Pintos로 이해하는 운영체제_김소현·김주은 튜터


POSTECHx

강좌 소개

본 강좌에서는 컴퓨터공학과의 CSED312 운영체제 교과목의 심화된 코딩 실습 Pintos 프로젝트에 대해 수강생들의 이해를 돕고자 한다. 운영체제 교과목은 컴퓨터공학과 전공 필수로 주요 핵심 과목이며, 컴퓨터시스템에 대한 전반적인 이해와 함께 수행해야 하는 Pintos 프로젝트의 높은 난이도로 알려져 있다. 본 강좌에서 Pintos 프로젝트를 수행하기 위한 기초 이론과 함께 실습에 필요한 구현에 대해 소개할 것이다. pintos 프로젝트는 스탠포드에서 만든 교육용 운영체제 os로서, 학생들로 하여금 스스로 운영체제에서 배운 지식을 구현해보게 한다. 따라서 운영체제 지식을 습득한 후, 직접 핀토스를 구현하며 배운 이론을 활용해볼 수 있다.


강좌 목차

1

1

Pintos1. 

이론 소개 (1)

첫 번째 프로젝트인 Thread를 위한 이론을 배운다. 실제 OS에서 Thread가 무엇인지, Thread 간에 스케쥴링이 어떻게 이루어지는지 이해한다. (synchronization, thread system)

2

Pintos1. 

이론 소개 (2)

Thread 이론을 바탕으로, 본 pintos에서 구현하는 목표와 배경을 이해한다. 배운 개념을 프로젝트에 적용시켜본다. 

2

1

Pintos1. 

프로젝트 설명 (1)

해당 프로젝트를 수행하기 위해 건드려야 하는 함수들과, 함수들의 각 기능을 어떻게 구현해야 하는지 이해한다. (파트1)
(Alarm clock, priority scheduling, advanced scheduler)

2

Pintos1. 

프로젝트 설명 (2)

해당 프로젝트를 수행하기 위해 건드려야 하는 함수들과, 함수들의 각 기능을 어떻게 구현해야 하는지 이해한다. (파트2)

3

1

Pintos2. 

이론 소개 (1)

두 번째 프로젝트인 User Programs를 위한 이론을 배운다. 실제 OS에서 시스템 콜을 통해 OS와 프로그램이 상호작용하는 개념을 이해한다. (virtual memory layout, process execution procedure, system call procedure, file system)

2

Pintos2. 

이론 소개 (2)

User programs 이론을 바탕으로, 본 프로젝트에서 구현하는 목표와 배경을 이해한다. 배운 개념을 프로젝트에 적용시켜본다. 또한 Pintos1로부터 어떻게 발전시켜야하는지 이해한다. 

4

1

Pintos2. 

프로젝트 설명 (1)

해당 프로젝트를 수행하기 위해 건드려야 하는 함수들과, 함수들의 각 기능을 어떻게 구현해야 하는지 이해한다. (파트1)

(process termination message, argument passing, system calls) 

2

Pintos2. 

프로젝트 설명 (2)

해당 프로젝트를 수행하기 위해 건드려야 하는 함수들과, 함수들의 각 기능을 어떻게 구현해야 하는지 이해한다. (파트2)

5

1

Pintos3. 

이론 소개 (1)

세 번째 프로젝트인 Virtual Memory를 위한 이론을 배운다. 실제 OS에서 가상 메모리의 필요성을 이해하고, 실제 메인 메모리와 가상 메모리 사이에 매핑을 어떻게 하는지 이해한다.

2

Pintos3. 

이론 소개 (2)

Virtual Memory 이론을 바탕으로, 본 프로젝트에서 구현하는 목표와 배경을 이해한다. 배운 개념을 프로젝트에 적용시켜본다. 또한 Pintos1, 2로부터 어떻게 발전시켜야하는지 이해한다. 

(virtual page, page table, hash, frame table, lazy loading, supplemental page table, file memory mapping)

6

1

Pintos3. 

프로젝트 설명(1)

해당 프로젝트를 수행하기 위해 건드려야 하는 함수들과, 함수들의 각 기능을 어떻게 구현해야 하는지 이해한다. (파트1)

(frame table, lazy loading, supplemental page table, page fault, stack growth 등)

2

Pintos3. 

프로젝트 설명 (2)

해당 프로젝트를 수행하기 위해 건드려야 하는 함수들과, 함수들의 각 기능을 어떻게 구현해야 하는지 이해한다. (파트2)



교수자

김소현

컴퓨터공학과 21학번


김주은

컴퓨터공학과 21학번


등록