프로세스 Process

강준호·2021년 12월 2일
0

운영체제

목록 보기
3/13

프로그램이 만들어지는 과정

컴파일러

  • 소스코드를 Object 파일로 변환

링커

  • 여러 Obj 파일과 라이브러리들을 연결해 Exe로 변환
  • Exe file: 헤더, 텍스트, 데이터를 포함

로더

  • Exe 파일을 실제 메모리에 올려주는 역할

프로세스

프로세스 개념

  • Execution Unit: 스케쥴링의 단위
  • Protection Domain: 프로세스끼리 서로 침범X

프로세스 하는일

  • Program Counter: 현재 실행중인 명령어가 어디에 있는지 확인
  • Stack: 실행하는 과정에서 발생하는 데이터들 임시 저장/없애는
  • Data Section: 원래 갖고있는 데이터들 구역

이 세개를 담고 있는 자료구조

프로세스 상태 Transition


ready : CPU의 명령받을 준비완료!
waiting: 대기중!

문맥 전환(Context Switch)

  • CPU가 새 프로세스로 스위치할때 old 프로세스의 스테이트를 업데이트 해주고, new 프로세스에 원래 저장되어있던 놈을 load 해줌

- 컴퓨터 구조의 load 명령어 등을 사용하기 때문에 overhead를 발생시켜

=> overhead는 운영체제에서 1. Pcb를 얼마나 빡세게 관리하는지, 레지스터에 저장되어있는 놈들이 백업되는거기 때문에 2. 레지스터 사이즈에 따라 달라짐

CISC 프로세스 구조

  • 복잡한 명령어셋 = 하나의 명령에서 여러개 동작 가능
  • 효율 굳.
  • 복잡한 회로 -> 레지스터 용량 감소 => 백업하고 로드해야하는 context 용량 작음.
  • 클럭 frequency 에서는 불리하지만, context switch overhead에서는 이점.

RISC 프로세스 구조

  • 간단한 명령어셋 = 하나의 명령어가 하나의 동작
  • 클럭 속도 높아서 frequency 좋음
  • 레지스터를 많이 넣을 수 있음 => 백업하고 로드해야하는 context 용량 많음.
  • 클럭 frequency 에서는 유리하지만, context switch overhead에서는 불리.

Parent 프로세스와 Child 프로세스

  • 프로세스 하나를 복사하는게 새로만드는거 보다 쉬움 (Fork system call)
  • 새로운 프로그램이 내용을 다시 채워줌 (Exec system call)
  • overhead 줄이는데 큰도움

0개의 댓글