CS/OS

[OS] 3. Process 연습문제

JWonK 2023. 4. 16. 00:08
728x90
반응형

3.1 Describe the differences among short-term, medium-term, and long-term scheduling.

 

Answer:

단기 스케줄링, 중기 스케줄링 및 장기 스케줄링의 차이점에 대해 설명해보겠습니다.

1. 단기 스케줄링 (Short-term Scheduling)
- CPU가 실행할 프로세스를 선택하는 역할을 합니다.
- 스케줄링 알고리즘을 사용하여 프로세스 실행을 관리합니다.
- 대부분의 경우 시스템이 실행 중인 프로세스 수에 따라 수 초에서 수 밀리초까지 단위 시간이 소요됩니다.
- 프로세스가 I/O를 수행해야 하는 경우, 스케줄러는 해당 프로세스를 블록킹 상태로 변경하고 
  I/O 작업이 완료될 때까지 다른 프로세스를 실행합니다.

2. 중기 스케줄링 (Medium-term Scheduling)
- 메모리 관리 및 프로세스 스와핑에 사용됩니다.
- 시스템에 할당된 메모리를 효율적으로 사용하기 위해 메모리에서 프로세스를 제거하거나,
  제거된 프로세스를 다시 메모리로 가져옵니다.
- 스케줄러가 프로세스를 일시 중지하고, 메모리에서 제거하여 저장장치(디스크)로 옮기는 등의 작업을 수행합니다.

3. 장기 스케줄링 (Long-term Scheduling)
- 시스템 자원을 효율적으로 사용하기 위해 새로운 프로세스를 실행하기 위한 결정을 내리는 것을 의미합니다.
- 새로운 프로세스를 수용하기 위해 메모리에 여유 공간이 있는지, 
  프로세스가 실행되기 위해 필요한 시스템 자원이 충분한지 등을 판단하여 결정합니다.
- 장기 스케줄러는 디스크에서 프로그램을 가져와 메모리에 로드하며, 
  새로운 프로세스를 생성하거나 대기 중인 프로세스를 메모리로 가져와 실행합니다.

이러한 단기, 중기, 장기 스케줄링은 각각 시스템의 성능과 자원 활용 등에 영향을 미치므로, 
효율적인 스케줄링을 위해 각 스케줄링에 대한 최적화가 필요합니다.

 

 

 

 

 


3.2 Describe the actions taken by a kernel to context-switch between processes.

 

Answer:

컨텍스트 스위칭은 현재 실행중인 프로세스와 다른 프로세스를 실행하기 위해 커널이 수행하는 작업입니다. 
다음은 커널이 프로세스 컨텍스트를 스위칭하기 위해 수행하는 일반적인 단계입니다.

1. 인터럽트 발생
  - I/O 완료 또는 타이머 만료와 같은 이벤트가 발생하면 인터럽트가 발생합니다.
  - 이벤트와 연관된 인터럽트 핸들러가 실행됩니다.

2. 현재 프로세스 저장
  - 인터럽트 핸들러는 현재 실행중인 프로세스의 레지스터 상태와 메모리 상태를 저장합니다.

3. 새로운 프로세스 선택
  - 스케줄러는 실행 가능한 프로세스 중 하나를 선택합니다.
  - 선택된 프로세스는 메모리에 로드되고 준비 상태로 변경됩니다.

4. 새로운 프로세스 로드
  - 커널은 새로운 프로세스의 레지스터 상태와 메모리 상태를 복원합니다.

5. 제어권 반환
  - 새로운 프로세스가 실행되며 컨텍스트 스위칭이 완료됩니다.

이러한 단계를 통해 커널은 프로세스 간에 제어를 전환하고 실행 중인 프로세스의 상태를 유지할 수 있습니다.

 

 

 

 


3.3 What are the benefits and the disadvantages of each of the following? Consider both the system level and the programmer level.

 

a. Synchronous and asynchronous communication

b. Automatic and explicit buffering

c. Send by copy and send by reference

d. Fixed-sized and variable-sized messages

 

 

Answer:

a. 동기식 및 비동기식 통신의 장단점:
  - 시스템 레벨: 동기식 통신은 간단하고 직관적이지만, 
   작업이 완료될 때까지 기다려야 하므로 시스템 자원을 낭비할 수 있다. 
   반면, 비동기식 통신은 작업을 큐에 추가하고 다음 작업으로 넘어가므로 시스템의 자원을 더욱 효율적으로 활용할 수 있다. 
   그러나 구현이 더 복잡하다.
  - 프로그래머 레벨: 동기식 통신은 결과를 기다리면서 블로킹되므로, 다음 작업을 실행할 수 없다. 
  이에 대해 비동기식 통신은 다음 작업을 실행하면서 결과가 나타나면 이를 처리할 수 있다.
  
b. 자동 및 명시적 버퍼링의 장단점:
  - 시스템 레벨: 자동 버퍼링은 일반적으로 시스템 오버헤드가 적고 간단하며, 대부분의 경우 효율적이다. 
  그러나 명시적 버퍼링은 프로그래머가 제어할 수 있으므로 더욱 효율적으로 활용할 수 있다.
  - 프로그래머 레벨: 자동 버퍼링은 일반적으로 프로그래머가 별도의 작업을 하지 않아도 되므로 편리하지만, 
  크기가 제한적이며 제어할 수 없다. 명시적 버퍼링은 프로그래머가 버퍼의 크기와 사용 시기를 제어할 수 있으므로, 
  더욱 유연하게 데이터를 처리할 수 있다.
  
c. 복사 및 참조에 의한 전송의 장단점:
  - 시스템 레벨: 복사에 의한 전송은 안전성이 높으며, 시스템 리소스를 보호할 수 있다. 
  그러나 참조에 의한 전송은 데이터 복사를 피할 수 있으므로 더욱 효율적이다.
  - 프로그래머 레벨: 복사에 의한 전송은 데이터를 보호할 수 있지만, 데이터 복사를 위한 시간과 공간이 필요하다. 
  참조에 의한 전송은 데이터를 복사하지 않으므로 시간과 공간을 절약할 수 있다.
  그러나 데이터가 변경될 경우 예상치 못한 결과가 발생할 수 있다.
  
d. 고정 크기 메세지와 가변 크기 메세지 장단점:

[고정 크기 메시지]
- 이점:
* 시스템 수행 속도가 빠릅니다. 메시지의 크기가 고정되어 있으므로 메모리를 더욱 효율적으로 관리할 수 있습니다.
* 메시지의 처리가 간단합니다. 고정 크기 메시지를 전송하면, 수신자는 메시지의 크기를 미리 알고 있으므로 
  메모리를 할당하고 데이터를 복사하면 됩니다.

- 단점:
* 메시지의 크기가 고정되어 있기 때문에 유연성이 떨어집니다. 
  만약 메시지의 크기가 예상보다 크거나 작으면 메모리 낭비가 발생하거나 데이터가 손실될 수 있습니다.
* 메시지의 크기가 작은 경우, 메시지 크기에 따라서 메시지 전송 시간의 지연이 발생할 수 있습니다.

[가변 크기 메시지]
- 이점:
* 유연성이 높습니다. 메시지의 크기가 가변적이기 때문에 데이터 크기를 예측하지 않아도 되므로 
  더욱 다양한 유형의 데이터를 처리할 수 있습니다.
* 작은 데이터 크기의 경우, 메시지 전송 시간이 단축됩니다.데이터 크기에 따라 메시지 전송 시간의 지연이 발생하지 않습니다.

- 단점:
* 시스템 성능이 떨어집니다. 가변 크기 메시지를 전송하면, 수신자는 메모리를 동적으로 할당하고 
  데이터를 복사해야 하므로 처리 시간이 늘어납니다.
* 메시지의 처리가 복잡합니다. 가변 크기 메시지를 전송하면, 수신자는 메모리를 동적으로 할당하고
  데이터를 복사해야 하므로 전송 프로토콜이 더욱 복잡해집니다.
728x90
반응형

'CS > OS' 카테고리의 다른 글

[OS] 5. CPU Scheduling 연습문제  (0) 2023.04.16
[OS] 4. Thread 연습문제  (0) 2023.04.16
[OS] 2. Operating System Structure 연습문제  (0) 2023.04.15
[OS] 1. OS Introduction 연습문제  (0) 2023.04.15
[OS] CPU Scheduling (2) - CPU 스케줄링  (0) 2023.04.14