본문 바로가기

운영체제

6. Process 2 & 3

이화여자대학교 반효경 교수님의 운영체제 수업 6강7강을 듣고 정리한 내용이다.

 

<동기식 입출력과 비동기식 입출력>

  • 입출력이 끝날 때까지 아무일도 하지 않으면, 동기식 입출력 (=입출력 실행하지 않고, 기다리기만 함)
  • 사용자 프로세스가 입출력 요청을 한 뒤, 입출력이 진행되는 동안 그 프로세스가 곧바로 CPU를 잡아 instruction(명령)을 진행하면, 이것이 비동기식 입출력(=요청은 하되, 다른 명령도 실행)
  • 구현방법은 좀 더 효율적으로 쓰기 위한 것이며, 구현방법 2가 좀 더 일반적으로 얘기하는 동기식 입출력

<Thread>

" A thread (or lightweight process) is a basic unit of CPU utilization."
  • 프로세스 내부에 CPU 수행 단위가 여러 개 있는 경우, 프로세스를 별도로 두는 것보다 프로세스 안에 thread를 여러개 두는 것이 더 가벼움

- Thread의 구성(;Thread가 독립적으로 가짐)

  • program counter
  • register set
  • stack space

 

- Thread가 동료 thread와 공유하는 부분(=task)

  • code section
  • data section
  • OS resources

※ CPU 수행 단위가 여러개 있게 되면, Stack도 별도로 가짐!

 

 

  • 전통적인 개념의 heavyweight process는 하나의 thread를 가지고 있는 task로 올 수 있음
  • 위의 그림처럼, 프로세스는 하나만, 프로그램 카운터만 여러개 띄워놓음
  • 프로세스 하나에 CPU 수행단위만 여러개 두고 있는 것이 쓰레드

 

  • 다중 쓰레드로 구성된 태스크 구조에서는 하나의 서버 쓰레드가 blocked(waiting) 상태인 동안에도 동일한 태스크 내의 다른 스레드가 실행(running)되어 빠른 처리를 할 수 있음
  • 동일한 일을 수행하는 다중 쓰레드가 협력하여 높은 처리율(throughput)과 성능 향상을 얻을 수 있음
  • 스레드를 사용하면 병렬성을 높일 수 있음
    • 쓰레드를 이용하면 빠른 응답정 제공과 자원을 절약할 수 있는 장점이 있음
    • 같은 일을 하는 프로세스를 여러개 띄워놓게 되면, 각각의 메모리에 올라가야하므로 메모리 낭비가 심함
    • 하지만, 하나의 프로세스에 하나의 쓰레드만 놓게 되면, 성능 향상이나 자원 절약이 가능함
  • Process는 하나기 때문에 PCB도 하나로 생성
  • Process 안에 쓰레드가 여러개면, CPU 수행과 관련된 내용(program counter, registers)만 copy

<Single and Multithreaded Program>

  • code, data, stack과 같은 자원들은 쓰레드들끼리 공유
  • CPU 수행과 관련된 정보(register set, stack)을 쓰레드마다 별도로 가짐

<Benefits of Threads>

  • Responsiveness
    • eg) Multi-threaded WEB - if one thread is blocked(eg. network), another thread continues(eg.display)
  • Resource Sharing
    • n threads can share binary code, data, resource of the process
  • Economy(경제성)
    • creating & CPU switching thread (rather than a process)
    • solaris의 경우, 위 두가지 overhead가 각각 30배, 5배
  • Utilization of MP Architectures
    • each thread may be running in parallel on a different processor
    • CPU가 여러개 있는 환경에서 얻을 수 있는 장점

<Implementation of Threads>

  • Some are supported by Kernel (=Kernel Threads)
    • Windows 95/98/NT
    • Solaris
    • Digital UNIX, Mach
  • Others are supported by library(=User Threads)
    • POSIX Pthreads
    • Mach C-threads
    • Solaris threads

→ Some are real-time threads

'운영체제' 카테고리의 다른 글

8. Process Management 2  (0) 2022.02.12
7. Process Management 1  (0) 2022.02.12
4. System Structure & Program Execution 2  (0) 2022.01.29
3. System Structure & Program Execution 1  (0) 2022.01.21
1. 강의 소개  (0) 2022.01.21