본문 바로가기

CS/운영체제

운영체제(4) - 스케줄러와 Thread

반응형

스케줄러

어떤 프로세스에게 자원을 할당할지를 결정하는 운영체제의 모듈을 지칭한다.

  1. Long - term Scheduler ( Job Scheduler)
    • 시작 프로세스 중 어떤 것들을 ready queue로 보낼지 결정
    • 프로세스에 memory를 주는 문제
  2. Short - term Scheduler ( CPU Scheduler)
    • 어떤 프로세스를 다음번에 running 시킬지 결정
    • 프로세스에 CPU를 주는 문제
    • 충분히 빨라야 함( millisecond 단위)
  3. Medium - term Scheduler ( Swapper)
    • 여유공간 마련을 위해 프로세스를 통째로 메모리에서 디스크로 쫓아냄
    • 프로세스에게서 Memory를 뺏는 문제, Suspended( Stopped) 라는 프로세스의 상태를 일으킬 수 있다.
      • 외부적인 요인으로 발생, 외부에서 resume 해 주어야 Active, ( 예시 : 사용자가 프로그램을 일시정지시킨 경우)

Thread

  • 프로세스중에서 CPU 실행단위를 Thread라고 한다.
  • 하나의 프로세스는 여러개의 쓰레드로 구성이 가능하다
  • 하나의 프로세스를 구성하는 쓰레드들은 프로세스에 할당된 메모리, 자원 등을 공유한다.

Thread의 구성

  • Program counter
  • register set
  • stack space

Thread가 동료 Thread와 공유하는 부분

  • code section
  • data section
  • heap section
  • OS resources

Thread의 장점

  • 응답성이 빠르다
  • Thread를 사용하면 병렬성을 높일 수 있다
    • 다중 Thread로 구성된 태스크 구조에서는 하나의 서버 스레드가 Blocked(waiting) 상태인 동안에도 동일한 태스크 내의 다른 Thread가 실행(running)되어 빠른 처리를 할 수 있다
  • 동일한 일을 수행하는 다중 스레드가 협력하여 높은 처리율(throughput)과 성능 향상을 얻을 수 있다
  • Thread를 사용하면 자원 효율성이 향상된다

비동기식 입출력은 Thread 환경에서 효과적으로 동작을 할 수 있다

Thread를 구현하는데에는 크게 2가지 방법이 있다

  1. 운영체제 커널에 의해 지원받는 방법(커널 쓰레드, Kernal Threads)
    • 스레드가 여러 개 있다는 사실을 운영체제 커널이 알고 있으며, 하나의 스레드에서 다른 스레드로 CPU의 제어권이 넘어가는 것도 커널이 CPU 스케줄링을 하듯 스케줄링하도록 구현되는 것이다
  2. 라이브러리에 의해 지원받는 방법(유저 쓰레드, User Threads)
    • 커널의 지원을 받지 않으며, 프로세스 내에 스레드가 여러 개 있다는 사실을 운영체제는 알지 못하고 사용자 프로그램이 스스로 라이브러리의 지원을 받아 스레드를 관리하게 되는 것이다

 

 

이 포스팅은 이화여대에서 무료로제공하는 반효경님의 운영체제강의를 수강하며 정리한 내용입니다.

필자가 잘 이해하지 못해서 잘못된 내용이 있을 수 있으므로 주의바라며, 발견되면 알려주시면 감사하겠습니다.

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

 

운영체제

운영체제는 컴퓨터 하드웨어 바로 위에 설치되는 소프트웨어 계층으로서 모든 컴퓨터 시스템의 필수적인 부분이다. 본 강좌에서는 이와 같은 운영체제의 개념과 역할, 운영체제를 구성하는 각

www.kocw.net

 

 

 

반응형