프로세스(process)

노지환·2022년 1월 25일
0

운영체제

목록 보기
1/5

process란?

  • 프로그램을 메모리 상에서 실행중인 작업
  • 디스크에 있을 때는 program이라고 부르지만, 메모리에 올라가면 process가 됩니다.

process의 구성(.feat 메모리)

address space: 프로세스의 주소 공간

stack: function의 데이터(지역변수들을 저장할 때는 위에서 아래로 저장이 됩니다.)

data: 전역변수와 상수가 저장되는 구역입니다.

text: program의 코드 일부가 메모리에 올라가는데 이를 text라고 합니다.

Context switch

dispatcher가 지금 일하고 있는 process를 바꿔야할 때,

  1. 이전 프로세스의 대한 정보를 PCB(Process Control Block)에 저장합니다.
  2. 다음으로 돌릴 프로세스를 정한 후에 정한 프로세스를 진행합니다.
  3. 이 프로세스가 끝나면, 전 프로세스로 돌아가서 저장한 PCB를 가져와서 다시 진행합니다.

이 변경하는 과정 자체를 context switch라고 합니다.

→ 프로세스의 상태 정보를 저장하고 복원하는 일련의 과정!

Context Switch가 일어날 때, PCB에 저장하는 것들?

  • PC(Program Counter)
  • Scheduling Information
  • Base and limit register value(기준 및 제한 레지스터 값)
  • Currently used register(현재 사용중인 레지스터)
  • Changed State
  • I/O State Information
  • Accounting Information

context switch는 멀티테스킹에서 중요한 역할을 합니다.

context switch하는 시간은 매우 아까운 시간입니다. == 퍼포먼스를 높이려면 이러한 오버헤드가 짧으면 짧을수록 좋습니다.

context switch를 줄이기 위해서는 어떻게 해야할까?

  1. high memory speed
  2. smal number of registers
  3. more special instruction for context switch
    • special instruction? : 새로운 명령어를 만들었다는 것
    • cpu 명령(==software적)으로 하는 게 더 빠르고 효율적입니다. == 많을수록 좋습니다.
  4. more register
    • 돈이 많다면 register를 많이 사용하자!

Five-state Process Model


New: 프로세스가 새롭게 만들어지는 것.

Running: 모든 process는 이 상태에 존재하기 위한 여정입니다. process가 queue에서 가져와지는 과정.

Ready: running으로 가려면 이 상태를 거쳐야합니다. queue에 들어오는 것이 ready 상태, time-out은 running으로 간 프로세스가 시간이 다 되었는데도 끝내지못한다면 queue로 다시 들어오는 것을 말합니다.

Waiting: timeout은 비자발적으로 일어나는 것. 다른 일이 생겼을 때는 waiting으로 온다. 일이 다 끝나면 ready로 갑니다!

terminated: 프로세스가 종료되는 과정. 할당한 자원을 모두 회수합니다.

process scheduling

CPU 사용량을 최대로 올리기 위하여 스케줄링을 한다.

scheduler는 ready에 존재하는 프로세스를 running으로 보내는 역할을 합니다.

ready에 존재하는 queue는 Priority Queue입니다.


long term: 어떤 친구를 메모리에 올려줄 것인지 정하는 스케줄러

short term: 메모리에 올려져 있는 친구들 중 CPU에 올려줄 친구를 정하는 스케줄러

헷갈리는 개념

멀티 프로그래밍(Multi Programming)

  • 여러개의 프로그램이 시간을 공유하면서 돌아가는 것
  • 각각의 프로그램이 순서대로 돌아갑니다.

멀티 태스킹(Multi Tasking)

  • task == process. 멀티 프로그래밍보다 context switching이 더 자주 발생합니다.
  • 자주 스위칭한다면? : 사람이 보기에는 동시에 발생하는 것처럼 보입니다.
  • CPU Scheduling이 어떻게 프로세스를 스위칭할지 관리합니다!

멀티 쓰레딩(Multi Threading)

  • 하나의 프로세서가 여러개의 일을 하는 것을 뜻합니다.
profile
기초가 단단한 프로그래머 -ing

0개의 댓글