[KOCW] 운영체제, 3. 프로세스 관리(4)

임창묵·2022년 6월 15일
0

Computer science

목록 보기
9/11
post-thumbnail

KOCW > 이화여자대학교 반효경 교수님 > 운영체제 > 3. 프로세스 관리(4)

3. 프로세스 관리(4)

프로세스 상태도

  • 중기 스케줄러에 의해 suspended 상태로 전환 후, blocked 나 ready 상태로 전환하여 메모리에 탑재
  • 프로세스가 자기 코드를 수행 중이면 user mode에서 running
  • 운영 체제는 running 하지 않는다
    • 프로세스 중간에 Interrupt로 인해 시스템 콜이 발생해도, OS가 아닌 프로세스가 running 중인 것으로 간주한다

Thread

"A thread(or lightweight process) is a basic unit of CPU utilization"

  • 동일한 프로그램을 여러 개 실행하더라도 모두 프로세스로 수행하지 말고 주소공간의 stack과 PCB의 레지스터만 별개로 사용하고 나머지는 공유하는 방법

  • Thread의 구성

    • program counter
    • register set
    • stack space
  • Thread가 동료 Thread와 공유하는 부분(=task)
    • code section
    • data section
    • OS resources
  • 전통적인 개념의 lightweight process는 하나의 thread를 가지고 있는 task로 볼 수 있다.
  • 장점: 자원 공유, 응답성 향상
    1. 다중 스레드로 구성된 태크스 구조에서는, 하나의 서버 스레드가 blocked(waiting) 상태인 동안에도 동일한 태스크 내의 다른 스레드가 running되어 빠른 처리를 할 수 있다.
    2. 동일한 일을 수행하는 다중 스레드가 협력하여 높은 처리율(throughput)과 성능 향상
    3. (CPU가 여러 개 있는 환경에서)병렬성을 높일 수 있다

Implementation of Threads

  • Kernel Threads: 운영체제가 thread의 존재를 아는 경우, 운영체제에서 구현
  • User Threads: 운영체제가 thread의 존재를 모르는 경우, 사용자 프로그램 단에서 구현

0개의 댓글