프로세스

이주희·2022년 9월 14일
0

OS

목록 보기
2/17

프로세스란

실행중인 프로그램

여러 프로세스를 동시에 실행하려면..?
-> 운영체제를 통해 CPU를 가상화한다

== 시분할 (time sharing)

이를 위해 도구, 지능이 필요함

  • 도구
    = 메커니즘
    ex) context switch(문맥 교환)
    프로그램 실행하던 것을 잠시 멈추고 다른 프로그램 실행

  • 지능
    = policy
    ex) scheduling policy
    과거의 정보(얼마나 자주 실행, 어떤 유형들이 실행) 및 성능(단위시간당 처리량, 응답시간등)을 바탕으로 스케줄링

프로세스 하드웨어 구성요소

  • 메모리
    명령어 저장, 실행 프로그램 읽고 쓰는 내용 저장

  • 레지스터

    • program counter(PC)
      어느 명령어가 실행중인지 알려줌 (instruction pointer, IP)
    • stack pointer, frame pointer
      함수의 변수와 리턴 주소 저장하는 스택 관리

프로세스의 생성

  1. 운영체제는 프로그램 코드와 정적 데이터를 메모리, 프로세스의 주소공간에 load
  2. 메모리 공간에 스택용도로 할당
  3. 입출력 관계 초기화 작업
    ex)세개의 파일 디스크립터

프로세스 status

초기

  • Running (실행)
    명령어 실행중

  • Ready (준비)
    실행할 준비가 되어있지만 다른 프로세스를 실행중과 같은 이유로 대기중

  • Blocked (대기)
    실행 상태에 있는 프로세스가 입출력을 요청하면 입출력이 완료될 때까지 기다리는 상태
    입출력 전용 큐에서 대기 ,대기시간동안 IO 시행 후 인터럽트를 통해 준비상태로 돌아온다

관련 자료구조

  • 프로세스 리스트
    준비상태의 프로세스들의 상태 파악 용도

  • register context
    프로세스 중단됐을 때 해당 프로세스 레지스터 값을 저장
    후에 복원하여 프로세스 실행 제개

0개의 댓글