본문 바로가기

이거슨 상식!

[인프런 공룡책 ] 03. 프로세스의 이해 1부

  1. 프로세스란? ( = program in execution ) ( 프로세스를 관리하는것은 os ) 
    1. 정의 : 실행중인 프로그램을 "프로세스"라고 한다.  
    2. 운영체제 입장에서는 프로그램을 실행시켜주는것, 작업의 단위가 프로세스 이다. 
    3. 하나의 프로세스가 실행되기 위해  cpu, memory, files, io 와 같은 리소스를 관리 할 수 있어야 한다. 
    4. cpu가 메모리에 있는 인스트럭션들을 하나씩 fetch해와서 cpu에서 execute 하는걸 컴퓨터라고 한다.
    5. 실행파일은 하드에 저장되어있다. 실행파일을 실행하면, 이를 메모리에 올린다. 이 메모리에 올라간걸 프로세스라고 한다.
  2. OS는 프로세르를 관리해야한다. 
    여러개의 섹션으로 나뉘어져 있는 프로세스, 프로세스의 구조를 보면
    1. 텍스트 섹션
    2. 데이터 섹션(전역변수 부분 )
    3. 힙 섹션 ( 메모리 할당시, 동적 할당 부분) 
    4. 스택 섹션 ( 함수 파라미터, 지역변수, 주소 등)
  3. 프로세스의 life cycle 
    1. new -> running -> waiting -> Ready -> Terminated
      * forck란 시스텤 콜을 통해 프로세스를 하나 생성 
      - 초기화 할꺼 다하면 ready 로 가고
      - os가 interrupt를 주면 ->ready 로 가고 
      - i/o 입력 기다릴꺼면 waiting queue 로 가고,  
      - ready 상태일때, 스케줄러가 dispatch (=보내다) running  상태로 
  4.  프로세스를 어떻게 관리하나? 
    1. PCB, TCB ( process control block, task control block) 
    2. 각 프로세스들이 가져야할 정보를 pcb에 저장한다. 저장해야할 정보로는 다음의 것들이 있음. 
      • process state 
      • program counter : pc 란 instruction register 
  5.  프로세스 스케쥴링 
    1. 프로세스가 시스템에 들어가기전에, ready queue에 쌓인다.  
    2. i/o를위해 waiting 상태로 변경될 경우, i/o queue에 넣어지고, 원하는 결과를 얻고나면,   ready queue 에 넣어진다.  
  6.  Context Switch 
    1. context 란? :  pcb 정보를 context 라고 보면된다 
    2. interrupt 가 발생하면
      - 시스템은 실행중인 프로그램의 context를 저장하고
      - 재개되면 이를 복원한다. 
    3. context switch 란? 
      - cpu콜을 다른 프로세스에게 넘겨주면서, 현재 pcb를 저장했다가, 재개될때 복원하는것을 말한다.
  7.  Operatig on Process 
    프로세스를 생성하려면? (use os fork) 
    - 프로세스의 tree관계가 성립한다. 
    - 부모 프로세스와 자식 프로세스는 address-space를 공유하거나 새로 생성 할 수 있다. 
  8. process terminates 
    - exit() -- os system call 
    -- 끝났으면 자원 회수한다. 
  9. 좀비 or 고아
    부모프로세스를 fork 하여 자식 프로세스를 만들어 냈는데, 부모 프로세스를 종료하면, 자식 프로세스가 Orphan이 된다.
    근데 부모프로세스가 fork한 자식을 신경쓰지 않으면 좀비 프로세스가 된다. 
    좀비 :  

'이거슨 상식!' 카테고리의 다른 글

git detached HEAD 연결하기  (0) 2023.01.09
psql DB 명령어 모음집  (0) 2022.11.29
ffmpeg 커맨드 구간 편집, 크기변환  (0) 2022.08.12
초짜 이미지 웹크롤링 (22.05.24 동작확인)  (0) 2022.05.24
명령어모음집  (0) 2022.04.24