시냅스

TIL : OS processes 본문

운영체제

TIL : OS processes

ted k 2021. 11. 12. 10:32

프로세스 : 실행 중인 프로그램

  • 작업의 단위
  • 필요한 자원
    • CPU time
    • memory
    • files
    • I/O device
  • 기본적으로 쓰레드 하나지만 여러개도 있음

 

프로세스의 메모리 레이아웃

  • text section : 실행 코드
  • data section : 전역 변수
  • heap section : 프로그램 실행 중 동적으로 할당되는 메모리
  • stack section : 함수를 호출할 때 임시 데이터 저장소(함수 매개변수, 복귀 주소, 지역 변수)

 

 

프로세스의 러닝 주기

  • new : 프로세스 생성 중
  • running : cpu에 명령어를 실행하는 상태
  • waiting : cpu 점유를 기다리는 상태 (I/O 관련, 신호의 수신)
  • ready : cpu 점유 직전 대기 상태
  • teminated : 끝!

 

프로세스 관리법 : PCB(process control block)

  • 프로세스가 가져야 하는 모든 정보
  • 알아야 하는 정보
    • process state (러닝 주기)
    • program counter (메모리 주소)
    • cpu registers (e.g. IR, DR)
    • CPU scheduling
    • memory management information
    • accounting information : cpu 사용 시간, 경과된 실시간, 시간 제한, 계정 번호, 프로세스 번호 등
    • I/O status information

 

멀티프로그래밍

  • CPU 효율 상승!
  • 스레드를 지원하는 시스템에서의 PCB는 각 스레드에 관한 정보를 포함하도록 확장함
  • time sharing 방식
  • scheduling queue
    • ready queue
    • wait queue
    • OS는 dispatch 되기를 기다리는 준비 대기열을 유지 관리한다.

 

  • OS는 또한 프로세스가 I/O 완료, 인터럽트 또는 자식 프로세스의 종료와 같은 이벤트를 기다리는 다른 대기열들을 유지 관리한다.

 

Context switch : context = pcb

  • 인터럽트가 발생되면 실행 중인 context 저장해 뒀다가, 재개됐을 때 복구
  • cpu 코어를 다른 프로세스에게 넘겨주는 것
  • 현재 프로세스의 문맥(pcb) 저장
  • 다른 프로세스의 pcb 복원

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

멀티 쓰레딩 Thread and Concurrency  (0) 2022.04.12
TIL : OS Thread  (0) 2021.11.19
TIL : OS IPC 시스템의 사례  (0) 2021.11.16
TIL : OS 프로세스 간 통신  (0) 2021.11.14
TIL : OS Structure  (0) 2021.11.12
Comments