TIL. OS(1)

seul_velog·2022년 9월 17일
0
post-thumbnail

동기와 비동기의 차이

동기 방식은 서버에서 요청을 보냈을 때 응답이 돌아와야 다음 동작을 수행할 수 있다. 따라서 A 작업이 모두 진행될 때까지 B작업은 대기하는 방식이다.
비동기 방식은 반대로 요청을 보냈을 때 응답 상태와 상관없이 다음 동작을 수행할 수 있다. 즉 A작업이 시작하면 동시에 B작업이 실행된다. A작업은 결과값이 나오는대로 출력된다.

  • 동기는 디자인이 비동기보다 간단하고 직관적일 수 있지만 결과가 주어질 때까지 아무것도 하지 못하고 대기해야하는 문제가 있다. 반면 비동기는 동기보다 복잡하지만 결과가 주어지는데 시간이 걸려도 그 시간동안 다른 작업을 할 수 있어서 효율적일 수 있다.

📌 동기식 처리 모델(Synchronous processing model)

: 동기식 처리 모델은 직렬적으로 태스크(task)를 수행한다.


📌 비동기식 처리 모델(Asynchronous processing model 또는 Non-Blocking processing model)

: 비동기식 처리 모델은 병렬적으로 태스크를 수행한다.

📌 동기 비동기 방식 정리



스케줄러의 종류

CPU나 자원을 효율적으로 사용하고, 멀티 프로그래밍에서 CPU 효율을 극대화 하기 위한 목적이다. 장기 스케줄러와 단기 스케줄러, 중기 스케줄러가 있다. 장기 스케줄러는 풀(pool)로부터 프로세스들을 선별하고 실행을 위해 메모리에 적재한다. 단기 스케줄러는 실행이 준비된 프로세스들 중 하나를 선별해 CPU에게 할당한다. 중기 스케줄러는 필요에 따라 프로세스를 내리고 다시 올리는 역할을 수행하기 때문에 Swapper라고도 불린다.


스케줄러

  • 스케줄러는 레디 큐에 존재하는 프로세스들을 특정한 우선순위를 기반으로 CPU를 할당받게 해주는 역할을 한다.
  • 쉽게말해 한정적인 메모리를 여러 프로세스가 효율적으로 사용할 수 있도록 다음 실행 시간에 실행할 수 있는 프로세스 중 하나를 선택하는 역할을 한다.

장기 스케줄러(Long-Term Scheduler)

  • 디스크와 메모리 사이의 스케줄링을 관리한다.
  • 디스크에 비해 메모리 크기는 한정되어 있으므로 수행해야할 일(pool)에서 선택적으로 프로세스에 메모리를 할당하여 Ready Queue로 보내는 역할을 한다.
  • CPU bound process와 (CPU가 계산을 해줘야하는 비중이 큰 프로세스) I/O bound process(입출력을 많이 요구하는 프로세스) 의 적절한 비율의 혼합을 long-term 스케줄러가 서택해서 올려준다.
  • job을 고르는 것이라고 하여 long-term scheduler를 job scheduler라고도 한다.

단기 스케줄러(Short-Term Scheduler)

  • 메모리와 CPU사이의 스케줄링을 관리한다.
  • Ready Queue에서 어떤 프로세스를 Running할 지 결정한다.
  • 롱텀 스케줄러에 의해 여러개가 메모리에 있을 때 실제 CPU가 수행하는 것은 하나 뿐인데, 이 것을 고르는 것이 단기 스케줄러이다. 따라서 CPU Scheduler라고도 한다.
  • CPU 자원을 효율적으로 사용하기 위함이다.
  • 매우 짧은 시간단위로 수행되므로 단기 스케줄러라고 한다.

### 중기 스케줄러(Swapper) - 너무 많은 프로세스가 메모리에 올라와있을 경우 이를 다시 디스크로 보낸다. - 장기 스케줄러에 의해 10개 프로그램 중 6개를 올려서 수행하고 있다고 가정하자. CPU에서 이 6개를 수행하려고 했더니 이 6개가 CPU가 감당하기에 너무 많은 것 같을 경우 6개중 2개를 내려보내면 다른 프로세스들이 원활하게 돌아갈 수 있게된다. 이 때 어떤 것을 내려보낼지 선택하는 것이 중기 스케줄러이다. - 중기 스케줄러의 핵심은 메모리로부터 프로세스를 제거함으로써 멀티프로그래밍 개수(DOM)를 제어해 더 좋을 수 있다는 데서 나온다.



CPU 스케줄러

다중 프로그램 OS의 기본으로 여러 프로세스들이 CPU를 교환하며 사용하기 위해 필요한 스케줄러이다. CPU를 선점한 프로세스가 대기하는 시간을 보다 효율적으로 사용하기 위하여 사용한다.

📌 CPU (Central Processing Unit)
: CPU 혹은 중앙 처리 장치는 컴퓨터에서 기억, 해석, 연산, 제어라는 4대 주요 기능을 관할하는 장치를 말한다.


스케줄링이 일어나는 시점

  • Running -> Waiting (I/O, 자식프로세스종료)
  • Running -> Terminate (부모프로세스 종료)
  • Running -> Ready (interrupt 발생)
  • Waiting -> Ready (I/O완료)




reference)
동기, 비동기
스케줄러란
스케줄러
스케줄러의 특징
wiki-CPU
CPU스케줄러

profile
기억보단 기록을 ✨

0개의 댓글