[운영체제/OS] 2. 프로세스

SooYeon Yeon·2022년 5월 26일
0

운영체제/OS

목록 보기
2/3

프로세스의 개념 (Process Concept)

  • 실행중인 프로그램 (active)
  • 싱글 프로세스에서는 병렬 실행이 되지 않는다
  • program은 process와 다르게 disk에 저장되어 있는 passive(비활성)상태
  • 프로그램이 실행되면 프로세스가 됨

Multi parts

  • text section : 기계어로 된 코드들
  • program counter : 주소를 가르킴
  • Stack : 순간적(일시적)으로 사용되는 데이터를 포함
    • ex.) 함수 파라미터, return addresses, 지역변수
  • Data section : 전역 변수 포함
  • Heap : run time 동안 할당된 동적 메모리 포함

프로세스 상태 (Process State)

  • New : 프로그램이 메인 메모리에 할당
  • Ready : 할당된 프로그램이 프로세스가 오면 실행되기위한 준비 마침
  • Running : CPU가 해당 프로세스 실행
  • Waiting : I/O가 block 상태로 CPU를 사용않고 다른 작업을 함(프로세스가 와도 실행하지 않는 상태)
  • Terminated : 프로세스가 완전히 종료

CPU는 한정적이기 때문에 wait하고 resuming 하며 돌림

Process Control Block (PCB)

PCB : 프로세스에 대한 모든 정보가 모여있는 곳

Process State(프로세스 상태), Program Counter, CPU registers, CPU 스케쥴링 정보 등 포함

Thread (쓰레드)

  • 프로세스는 single thread of execution을 가짐
  • Multiple threads of control → threads
  • PCB안에 thread detail 저장소, 멀티 프로그램 카운터가 있어야한다

프로세스 스케쥴링 (Process Scheduling)

  • Resource를 Task에 할당하는 방법론

  • Process Scheduler은 OS의 일부분으로 CPU core에서 다음 실행을 할 active 상태(사용가능한 프로세스들)중 선택하는 것

  • CPU사용을 최대화 하고, 프로세스간 switch를 빠르게 하기 위함이 목표

  • Ready Queue - 메인 메모리에 저장되어 실행 및 대기 중인 프로세스들

  • Wait Queue - event를 기다리는 프로세스들

Context Switching

  • CPU가 다른 프로세스로 이동
  • 인터럽트가 발생한 경우처럼 시스템에서 CPU에서 실행되는 프로세스의 현재 상태(Context)를 저장해 , Context를 복구해 다시 재개하는 데 사용
  • PCB에 context가 포함됨
  • 하드웨어 support에 의존적

Operations on processes

Process Creation

  • 자신의 프로세스 복제해 다른 프로세스 생성
  • parent, child process가 존재하며 tree로 표현 가능

자식 프로세스가 생길 때 부모 프로세스는 둘 중 하나로 행동

  1. 자식 프로세스와 동시에 작동
  2. 자식 프로세스가 종료할 때까지 기다림

새로운 프로세스에 대한 주소 공간 가능한 경우

  1. 자식 프로세스는 부모 프로세스의 복제품이기 때문에 같은 프로그램과 데이터 사용
  2. 자식은 로딩될 새로운 프로그램 있음

fork() : 새로운 프로세스 생성

exec() : fork() call 이후에 exec()에 의해 부모 자식 중 하나는 프로세스 메모리 공간을 새 프로그램으로 교체

wait() : 부모 프로세스는 wait으로 child를 종료를 기다림

Process Termination

  • exit() : 삭제 요청
  • abort()

Interprocess Communication

  • 시스템에서 프로세스는 독립적(다른 프로세스들과 data 공유 X), 협력적(프로세스가 다른 프로세스들에 영향을 주고 받을 수 있음)

협력하는 이유

  • 정보 공유
  • 속도 증가
  • 역할 나눔
  • 편의성

IPC(interprocess communication)

  1. Shared Memory
    1. 프로세스간 공유할 메모리 공간 (shared memory)가 만들어짐
  2. Message passing
    1. message 교환을 통해 정보를 주고 받음

0개의 댓글