Computer Science - Process

이소라·2022년 10월 6일
0

Computer Sience

목록 보기
1/1

Hardware & Software

  • Hardware

    • CPU(Central Processing Unit) : 복잡한 작업을 중앙 처리함
      • Core : 각종 연산을 수행하는 핵심 요소
      • Cache Memory
      • Controller
    • Memory(ROM, RAM)
    • 연산장치
    • Control Unit
    • GPU(Graphics Processing Unit) : 비교적 단순 작업을 병렬 처리함
  • Software

    • Program : 실행가능한 파일(코드)
      • statement : 실행 가능한 독립적인 코드 조각
      • expression : 계산하여 값을 만드는 코드
      • identifier : 값의 위치
    • OS(Operator System)
      • 운영체제
      • hardware를 제어하고 응용 프로그램을 실행하는 기본 프로그램

Process

  • Process : program이 OS에 의해 memory 영역을 할당받고 실행중인 것
    • Code: 다음에 실행될 명령어의 주소를 갖고 있는 레지스터, 코드 저장
    • Data : global variables, static variables 저장
    • Heap : memory 관리, dynamic memory 할당
    • Stack(Thread)
      • process가 할당된 자원을 이용한 실행 단위
      • 임시 데이터(loval variables, return address) 저장
      • thread : 명령어의 실행 흐름

Context of Process

  • context of Process (process의 현재 실행중인 상태)
    • CPU 수행 상태를 나타내는 hardware context
      • Program Counter(PC)
      • 각종 Register
    • process의 주소 공간
      • code
      • data
      • stack
    • process 관련 커널 자료 구조
      • PCB(Process Control Block)
      • Kernel stack
        (kernal: 여러 process들이 공유하는 코드)
      • process별로 kernel stack을 따로 둠
        (정보 꼬임 문제를 막기 위해)

State of Process

  • process는 상태(state)가 변경되며 수행됨
    • Running
      • CPU를 잡고 instruction을 수행중인 상태
    • Ready
      • CPU를 기다리는 상태(메모리 등의 다른 조건은 모두 만족)
    • Blocked(wait, sleep)
      • CPU를 줘도 당장 instruction을 수행할 수 없는 상태
      • process가 요청한 event(예: I/O)가 즉시 만족되지 않아서 기다리는 상태
      • 예) 디스크에서 file을 읽어와야 하는 경우
    • New
      • process가 생성중인 상태
    • Terminated
      • 수행이 끝난 상태

Process Control Block(PCB)

  • PCB : OS가 각 process를 관리하기 위해 process당 유지하는 정보
    • OS가 관리상 사용하는 정보
      • Process State
      • Process ID
      • Scheduling Infomation
      • Priority
    • CPU 수행 관련 Hardware 값
      • Program Conter
      • Registers
    • memory 관련 정보
      • Code, Data, Stack의 위치 정보
    • 파일 관련 정보
      • 현재 오픈중인 파일 정보

Context Switch

  • Context Switch
    • CPU를 현 process에서 다른 process로 넘겨주는 과정
    • CPU가 다른 process에게 넘어갈 때 OS는 다음 과정을 수행함
      1. CPU를 내어주는 process 상태를 그 process의 PCB에 저장함
      2. CPU를 새롭게 얻은 process의 상태를 그 process의 PCB에서 읽어옴

  • System call이나 Interrupt 발생시 반드시 context switch가 일어나는 것은 아님
    • Sytem call : process가 본인이 필요해서 OS에게 무엇인가를 요청함
    • Hardware Interrupt : Controller와 같은 장치가 CPU에게 정보를 전달할 목적으로 Interrupt함
    • Sytem call이나 Interrupt 발생시, 사용자 process에서 OS 커널로 CPU 제어권이 넘어감
      • OS 커널에서 다른 process로 CPU 제어권이 넘어가면 context switch임
      • OS 커널에서 다시 본인 process로 CPU 제어권이 넘어가면 context switch가 아님
      • OS 커널에서 본인 process로 CPU 제어권이 넘어갈 때보다 다른 process로 CPU 제어권이 넘어갈 때 부담이 훨씬 큼
    • Timer Interrupt(할당시간 만료)나 I/O 요청(오래 걸림) system call 발생시, OS 커널에서 다른 process로 CPU 제어권이 넘어가므로, context switch가 일어남

Queue

  • process는 queue를 오가면서 수행됨
  • Queue의 종류
    • Job queue
      • 현재 시스템 내에 있는 모든 process의 집합
    • Ready queue
      • 현재 메모리 내에 있으면서 CPU를 잡아서 실행되기를 기다리는 PROCESS의 집합
    • Device queue
      • I/O device의 처리를 기다리는 프로세스의 집합

Scheduler

  • Long-term scheduler (job scheduler)
    • memory를 어떤 process에게 줄지 결정함
    • memory에 올라가는 process 수(degree of Multiprogramming)를 제어함
    • 시작 process 중 어떤 process를 ready queue로 보낼지 결정함
    • 보통 time sharing system에 Long-term sheduler가 없음
  • Short-term scheduler (CPU scheduler)
    • schedule 단위 : millisecond
    • CPU를 어떤 process에게 줄지 결정함
    • 다음에 어떤 process를 running 시킬지 결정함

참고

0개의 댓글