Posts 운영체제 정리 2 - 프로세스, 스레드, 병행성
Post
Cancel

운영체제 정리 2 - 프로세스, 스레드, 병행성


Contents



프로세스(Process)


\(\rhd\)프로세스란?

프로세스란 간단히 말해서 컴퓨터 상에서 실행중인 프로그램을 의미한다.
프로세스의 두 필수적인 요소는 프로그램 코드와 언계된 데이터 집합이다.
프로세스는 운영체제로부터 자원을 할당 받는 작업의 단위이다.

\(\rhd\)Dispatcher

디스패처(Dispatcher)는 CPU의 제어권을 특정 프로세스로부터 다른 프로세스로 교체해주는 모듈을 의미한다.

\(\rhd\)프로세스 5-상태 모델

Terms

  • 생성(New) : 생성되었지만, 아직 수행 가능한 프로세스 풀로 진입이 허용되지 않은 상태
  • 준비(Ready) : 기회가 주어지면 바로 수행할 준비가 되어 있는 상태
  • 수행(Running) : 현재 수행중인 프로세스
  • 블록/대기(Blocked) : 입출력 연산 완료 등과 같은 특정 이벤트가 발생할 때까지 수행될 수 없는 상태
  • 종료(Exit) : 프로세스 수행이 중지(halt)되거나 특정 이유로 중단(abort)되어 수행가능한 프로세스 풀에서 방출된 상태


스레드(Thread)

\(\rhd\)스레드란?

스레드는 프로세스가 할당받은 자원을 이용하는 실행의 단위이다.
프로세스 내의 주소 공간, 자원 등을 같은 프로세스 내의 스레드끼리 공유한다.
한 개의 프로세스는 최소 한 개 이상의 스레드를 가지고 있다.
일반적으로 디스패칭의 단위는 스레드라고 하며, 자원 소유권의 단위는 프로세스라고 한다.

\(\rhd\)멀티스레딩(Multithreading)

운영체제가 하나의 프로세스 내에서 수행되는 여러 개의 스레드를 지원하는 기능이다.

장점

  1. 새로운 프로세스를 생성하거나 종료하는 시간보다 새로운 스레드를 생성 혹은 종료하는 시간이 더 짧다.
  2. 프로세스들 간 교환보다 같은 프로세스 내의 스레드 간 교환이 효율적이다.
  3. 스레드간 통신은 커널을 호출하지 않고서도 수행할 수 있다.


This post is licensed under CC BY 4.0 by the author.