프로세스 관리

ChaeHo95·2022년 6월 18일
0

RoadMap

목록 보기
9/11

프로세스(Process)

컴퓨터에서 연속적으로 실행되고 있는 프로그램
실행 명령을 받아 메인 메모리 상에 실행되는 작업 단위
각 프로세스는 각자 자신의 주소 공간을 가지고 있으며, 객체(entity)이다.

프로그램

일반적으로 하드 디스크 등에 저장되어 있는 실행 코드를 말함

프로세스의 상태

커널 내에는 준비 큐,대기 큐, 실행 큐 등의 자료 구조가 있어 이 자료 구조를 통해 프로세스의 상태를 관리

  • 생성(create) : 프로세스가 생성되는 과정

  • 실행(running) : cpu를 차지 후 명령어 실행

  • 준비(ready) : cpu를 활당 받지 않아지만 언제든지 사용가능 상태
    cpu는 우선 순위가 놓은 프로세스 부터 할당 됨

  • 대기(waiting) : 보류(block)라고도 불리며, 입출력 완료, 이벤드 종료들을 기다리는 상태

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

프로세스 제어 블록(PCB,Process Control Block)

운영체제가 관리하는 자료구조로 프로세스 관리에 필요한 대부분의 정보가 저장되는 곳
PCB에 저장되는 정보는 프로세스의 고유 번호, 상태, 다음으로 실행시킬 메모리 주소 값, 레지스터 정보, 스케줄링 및 우선 순위, 할당되어 있는 자원 정보, cpu 사용 시간, 입출력 상태 정보 등이 있다.
프로세스가 실행을 마칠 시 모든 정보가 삭제 됨

멀티 프로그래밍(Multiprogramming)

단일 CPU 환경에서 여러 개의 프로세스가 동시에 실행되는 것을 말하지만 실제로는 동시에 실행 되지 않음

문맥 교환(Context Switching)

cpu가 실행 중인 프로세스의 상태를 PCB에 저장 후 다른 프로세스의 상태 정보를 PCB에 읽어서 다른 프로세스를 실행하는 것
멀티 프로그래밍 환경에서 이루어지며 병행 처리를 수행

프로세스의 상태 전이

  • 디스패치(dispatch)
    준비 리스트에서 우선 순위가 제일 높은 프로세스가 준비 상태에서 실행 상태로 바뀌는 것

  • 보류(block)
    할당된 시간을 모두 쓰기 전에 입출력 동작이 필요하여 프로세스가 cpu를 스스로 반납하여 보류 상태로 넘어가는 것

  • 깨움(wakeup)
    보류 상태에서 준비 상태로 넘어가는 과정

  • 시간제한(timeout)
    OS는 한 프로세스가 cpu를 계속 독점하여 다른 프로세스가 사용하지 못하는 상황을 막고자 clock interrupt를 두어 일정 시간동안만 cpu를 점유할 수 있게 하는 것

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

멀티 프로그래밍 환경에서 현재 실행 중인 프로세스 다음 프로세스가 어떤 것이 좋을지 결정 하는 과정

  • FCFS(First-Come First-Saved)
    먼저 준비 상태로 들어온 프로세스를 실행
  • SPN(Shortest Process Next)/SJF(Shortest Job First)
    준비 상태 프로세스들 중 cpu 사용 시간이 제일 짧은 것을 실행
  • 라운드 로빈(Round Robin)
    모든 프로세스가 돌아가면서 cpu를 조금씩 할당 받음
  • SRT(Shortest Remaining Time)
    cpu 요구량이 가장 짧은 것을 실행
  • HRRN(Hightest Response Ratio Next)
    준비 상태 프로세스들 중 응답률이 높은 것을 실행
    SRT/SPN 방식 이용 시 무한 대기 현상을 방지 하기 위함
  • 다단계 큐(Multi-level Queue)
    프로세스들의 우선 순위 값을 큐에 저장하여 우선 순위가 낮은 큐의 작업이 실행 중 이어도
    우선 순위 높은 큐에 프로세스가 도착 시 낮은 큐에서 높은 큐로 cpu의 할당을 뺏어옴
profile
what you do matters ,but why you it matters much more 당신이 무엇을 하는지는 중요하지만, '왜' 그것을 하는지는 훨씬 더 중요합니다.

0개의 댓글