HS_development_log

프로세스 본문

CS/운영체제

프로세스

DevHyeonseong 2020. 9. 28. 05:49
반응형

프로세스

프로세스(Process)

  • 실행중인 프로그램
  • 운영체제가 디스크에 있던 프로그램 파일을 찾아서 메모리에 적재해서 만든 것
  • 운영체제로 부터 시스템 자원을 할당받는다.

프로세스의 구성 요소

  • 코드(code)
  • 데이터(data) : 전역 변수들을 저장
  • 스택(stack) : 지역 변수 및 함수의 매개변수를 저장
  • 힙(heap) : 동적 메모리 할당 영역
  • CPU 레지스터
    • PC(program counter) 레지스터 : 프로그램의 다음에 실행할 명령어의 주소 값을 가짐
    • CS 레지스터 : 코드 세그먼트의 시작 주소 포함
    • DS 레지스터 : 데이터 세그먼트의 시작 주소 포함. 데이터의 위치를 알아내는데 사용
    • SS 레지스터 : 스택 세그먼트의 시작 주소 포함
      캡처

프로세스 제어 블록(PCB)

  • 프로그램을 실행하여 프로세스가 만들어질 때, 운영체제가 프로세스를 관리하기 위해 만드는 데이터 구조
  • 프로세스가 생성될 때마다 PCB를 생성함
  • 프로세스가 종료되면 PCB를 제거함

프로세스 제어 블록 구성 요소

  • 프로세스 번호(PID)
  • 프로세스 상태(state)
  • CPU 레지스터
  • CPU 스케쥴 정보: 우선순위, 스케쥴 큐의 포인터 등등..
  • 기억장치 관리 정보 : 기준 레지스터, 제한 레지스터, 기억장치 시스템의 페이지 테이블, 세그먼트 테이블의 정보
  • 계정(accounting) 정보 : CPU가 사용된 양, 계정 번호, 프로세스 번호
  • 입출력 상태 정보 : 입출력 요구들, 입출력 장치, 개방된 파일의 목록

프로세스 상태(Process State)

  • 생성(new) : 프로세스가 생성되는 중

  • 실행(running) : 프로세스의 명령어들이 실행되고 있다

  • 대기(wating) : 프로세스가 어떤 사건(ex : I/O종료)이 일어나기를 기다림

  • 준비(ready) : 프로세스가 CPU를 할당받기를 기다린다.

  • 종료(terminated) : 프로세스의 실행이 종료된다

어느 한순간에 한 CPU에 오직 하나의 프로세스만이 실행된다

2


문맥 교환(Context Switch)

  • CPU가 다른 프로세스로 넘어갈 때, 지금까지의 프로세스의 상태(CPU 레지스터의 내용)를 PCB에 저장하고, 새 프로세스의 PCB에 저장되어 있는 상태(CPU 레지스터의 내용)을 다시 CPU레지스터에 적재 하는 것.
  • 문맥교환은 시스템의 오버헤드이기 때문에 최대한 문맥 교환 시간을 줄이는 것이 좋다.
  • 문맥교환에 걸리는 시간은 하드웨어의 지원에 따라 달라진다.
    • 기억장치의 속도
    • 레지스터의 수
    • 특수 명령어의 지원 여부

프로세스 스케줄러

  • 장기 스케줄러(Long-term scheduler)
    • 디스크에 저장되어 있는 작업들 중에서 선택해서 실행하기 위한 기억장치로 적재
    • 선택된 작업은 준비 큐에 들어감
  • 중기 스케줄러(Medium-term scheduler)
    • 어떤 프로세스가 스왑되어 나가고, 스왑되어 들어올 것인지를 결정
  • 단기 스케줄러(Short-term scheduler)
    • 실행 준비가 되어있는 프로세스들 중에서 선택하여 CPU 할당
    • 보통 수십 밀리 초마다 한번씩 실행되어 새로운 프로세스 선택

프로세스 통신

  • 직접 통신 : 상대 프로세스의 id(번호)를 직접 명시
  • 간접 통신 : 통신하는 프로세스들간 공유하는 메일박스를 통하여 통신
    • 메일박스의 생성, 삭제 및 메일박스를 통한 송수신은 운영체제가 담당함
반응형

'CS > 운영체제' 카테고리의 다른 글

CPU 스케줄링  (0) 2020.09.28
멀티 프로세스 vs 멀티 쓰레드  (0) 2020.09.28
쓰레드  (0) 2020.09.28
프로세서 / 메모리 / 인터럽트  (0) 2020.04.24
운영체제 정의 / 기능 / 사례  (0) 2020.04.04