본문 바로가기

[운영체제] Term project: Nachos

교육용 운영체제

 

윈도우 위에서 Application처럼 돌아가지만 내부적으로는 Application-OS-H/W로 구성됨

 

MIPS Processor 상에서 돌아감

-> C 프로그램을 짜면 MIPS로 Cross complie 해줌

근데 C 프로그램 짜서 돌려보고 이런 건 안 할 거임 (시간 없음)

 

 

Java package

다 $nachos$ 패키지의 subpackage

machine: 하드웨어

vm: Virtual memory

threads: Nachos의 기본단위는 thread -> 그거랑 관련된 거

여기 많이 봐야 됨

 

각 프로젝트 디렉토리는 $nachos.conf$를 갖는다. 그냥 configuration 파일이라 수정할 일은 잘 없음

Scheduler 종류를 바꿀 수도 있는데 그 때는 이 파일을 건드려야 함

근데 때 되면 설명할 거니까 어지간하면 건드리지 말 것

 

 

 

$nachos.thread.KThread$의 인스턴스로 thread를 생성하며

thread가 기본단위 이므로 PCB가 아닌 $nachos.machine.TCB$를 사용한다.

$KThread$는 New, Ready, Running, Blokcing, Finished의 다섯가지 상태를 갖는다.

 

Scheduler는 $nachos.machine.Scheduler$의 subclass로 생성됨

$nachos.threads.ThreadQueue$(Ready queue)가 있고 여기서 thread를 가져와서 scheduling policy에 맞게끔 스케줄링함

'강의노트 > 운영체제' 카테고리의 다른 글

[운영체제] 5주차: 동기화  (0) 2021.04.06
[운영체제] 4주차: CPU scheduling  (0) 2021.03.29
[운영체제] 3주차: Thread  (0) 2021.03.23
[운영체제] 3주차: Review (2)  (0) 2021.03.22
[운영체제] 3주차: Review (1)  (0) 2021.03.22