CS지식/운영체제

TIL 정리_76

ran4 2022. 5. 3. 12:20

http://www.kocw.net/home/m/search/kemView.do?kemId=1046323

운영체제 강의를 듣고 정리한 내용입니다

 

Message Passing

Message system

프로세스 사이에 공유 변수(shared variable)를 일체 사용하지 않고 통신하는 시스템을 말한다

 

Direct Communication

통신하려는 프로세스의 이름을 명시적으로 표시한다

Process P ---> Process Q

 

Indirect Communication

mailbox(혹은 port)를 통해 메시지를 간접적으로 전달한다

Process P -----> Mailbox M ------>Process Q

 

-> Direct Communication, Indirect Communication 둘 다 커널을 통해 전달한다

 

원칙적으로 프로세스들은 독자적인 주소공간을 가지고 있다

그럼에도 주소공간을 공유하는 것이 shared memory이다

-> 이 또한 커널에 시스템 콜을 해서 맵핑 후 공유한다

 

CPU Scheduling

 

CPU-butst Time의 분포

여러 종류의 job(process)이 섞여있기 때문에 CPU 스케줄링이 필요하다

  • Interactive job에게 적절한 response 제공을 요망한다
  • CPU와 I/O 장치 등 시스템 자원을 골고루 효율적으로 사용한다

/*

CPU의 사용량을 골고루 분포시키는 것은 그렇게 스케줄링했다 가정했기 때문이고

실제로는 한가지 일만 할당시키게 스케줄링 할 수도 있다

*/

 

프로세스 특성 분류

프로세스는 특성에 따라 두 가지로 나눠진다

I/O-bound process

  • CPU를 잡고 계산하는 시간보다 I/O에 많은 시간이 필요한 job(process)
  • many short CPU bursts

 

CPU-bound process

  • 계산위주의 job
  • few very long CPU bursts

 

CPU Scheduler & Dispatcher

CPU Scheduler

Ready 상태의 프로세스 중에서 CPU를 줄 프로세스를 고른다

 

Dispatcher

CPU의 제어권을 CPU scheduler에 의해 선택된 프로세스에게 넘긴다

이 과정을 context switch(문맥 교환)이라고 한다

 

 

CPU 스케줄링이 필요한 경우는 프로세스에게 다음과 같은 상태 변화가 있는 경우이다

  1. Running -> Blocked(I/O 요청하는 시스템 콜)
  2. Running -> Ready(할당시간 만료로 timer interrupt 발생)
  3. Blocked -> Ready(I/O 완료 후 인터럽트)
  4. Terminate

 

**1,4에서 스케줄링은 nonpreemptive -> CPU를 자진 반납한다(강제x)

그 외의 스케줄링은 preemptive -> CPU를 강제로 빼앗는다

'CS지식 > 운영체제' 카테고리의 다른 글

TIL 정리_82(운영체제)  (0) 2022.05.09
TIL 정리_77  (0) 2022.05.04
TIL 정리_75  (0) 2022.05.02
TIL 정리_74  (0) 2022.05.01
TIL 정리_73  (0) 2022.04.30