반응형

프로세스 개념

CPU에 의해 처리되는 프로그램, 즉 실행 중인 프로그램

프로세스 상태

  • 생성 : 사용자에 의해 프로세스가 생성된 상태
  • 준비 : CPU를 할당받을 수 있는 상태
  • 실행 : 프로세스가 CPU를 할당받아 동작 중인 상태
  • 대기 : 프로세스 실행 중 입출력 처리 등으로 인해 CPU를 양도하고 입출력 처리 완료까지 대기 리스트에서 기다리는 상태
  • 완료 : 프로세스가 CPU를 할당받아 주어진 시간 내에 완전히 수행을 종료한 상태

프로세스 상태 전이

  • 디스패치 : (준비 -> 실행) 준비 리스트 중 실행될 프로세스를 선정하여 CPU를 할당
  • 할당 시간 초과 : (실행 -> 준비) 실행 중인 프로세스의 지정 시간 초과 시 스케줄러에 의해 PCB 저장, CPU 반납 후 준비 상태로 전이
  • 입출력 발생 : (실행 -> 대기) 실행 중인 프로세스의 지정 시간 초과 전 Block 발생 시 CPU를 스스로 반납하고 대기
  • 깨움 : (대기 -> 준비) 입출력 종료 시 대기 상태의 프로세스에게 입출력 종료 사실을 알려주고 상태 전이

프로세스 구성

  • 사용자 작성 코드
  • 사용자 사용 데이터 : 사용자 작성 코드 프로그램에서 사용하는 데이터
  • 스택 : 함수 호출 및 인자 값 전송에 사용
  • 프로세스 제어 블록(PCB) : 운영체제가 프로세스 관리를 위해 필요한 자료를 담고 있는 자료 구조
    • 프로세스 생성 시 만들어지고, 메인 메모리에 유지되며, 운영체제에서 한 프로세스의 전체 정의
    • 구성요소 : PID, 프로세스 상태, 프로그램 카운트, 레지스터 저장 영역, 프로세스 스케줄링 정보, 계정 정보, 입출력 상태 정보, 메모리 관리 정보

스레드

프로세스에서 실행 제어만 분리한 실행 단위

커널 수준 스레드 사용자 수준 스레드
개념 스레드를 생성하고 스케줄링하는 주체가 커널 운영체제에 의해 스레드 운용 사용자 영역에서 라이브러리를 통해 구현 사용자 라이브러리를 사용하여 스레드 운용
장점 커널이 각 스레드를 개별적으로 관리 다른 스레드가 입출력 작업이 다 끝날 때까지 다른 스레드를 사용해 다른 작업 안정성 및 다양한 기능 제공 오버헤드가 적음. OS 스케줄러의 문맥 교환이 없음.
단점 오버헤드가 많음. 사용자 스레드에 비해 생성 및 관리가 느림 어떤 스레드가 먼저 동작할지 알 수 없음. 여러 개의 사용자 스레드 중 하나의 스레드가 블록이 걸리는 경우 나머지 스레드도 블록

프로세스 vs 스레드

구분 프로세스 스레드
요소 기술 PCB, 텍스트, 데이터, 힙, 스택 스레드ID, 레지스터 집합, 스택
통신 방법 IPC IPC, 전역 변수
시스템 부하 문맥 교환을 통해 이루어지므로 시스템 부하가 큼 경량화된 문맥교환을 사용하여 시스템 부하가 적음

TODO

  • PCB 구성요소
  • IPC란?
  • 문맥 교환이란?
반응형

'CS > OS' 카테고리의 다른 글

5. 교착상태(Deadlock)  (0) 2023.11.19
4. 프로세스 스케줄링  (2) 2023.11.18
2. 메모리 관리  (0) 2023.11.08
1. 운영체제  (0) 2023.11.07

+ Recent posts