ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 프로세스
    운영체제 2024. 2. 18. 14:11

    01. process?

    • 프로세스는 실행 중인 프로그램이다.
    • 프로세스는 program counter(pc), process stack, data section, heap을 포함한다.
    • 프로그램은 디스크에 저장된 파일 같이 수동적 존재이고, 프로세스는 다음 실행 명령어를 지정하는 pc와 관련 resource set을 가진 능동적 존재이다.
    • 프로그램이 메모리에 로드되면 프로세스가 된다.

    Process Control Block(PCB)

    PCB는 특정 프로세스 관련 정보를 갖고 있다.

    • Process state : new, ready, running, wating, terminated 등의 프로세스 상태
    • Program Counter : 이 프로세스가 다음으로 실행할 명령어의 주소 가리킴
    • CPU Register 
    • CPU 스케줄링 정보 : 프로세스 우선 순위 등의 스케줄링 매개변수들을 포함
    • 메모리 관리 정보 
    • accounting 정보 : CPU 사용 시간, real time used, time limit, process number 등
    • 입출력 상태 정보 : 해당 프로세스에 할당된 I/O 기기들과 open file 목록 등을 포함

    Thread

    한 프로세스는 다수의 스레드를 가질 수 있고, 

    따라서 프로세스가 한 번에 하나 이상의 일을 수행할 수 있다.

    여러 스레드가 병렬로 수행되는 multi-core 시스템에서 이득이고, 스레드를 지원하는 시스템에서는 PCB가 각 스레드에 대한 정보 포함

     

    02. 프로세스 스케줄링

    single - processor 환경에서 실행 중인 프로세스는 한 개여야 하므로 process scheduler는 CPU를 switching 하며 여러 프로세스 중 하나의 프로세스에 할당해준다.

     

    스케줄링 큐(scheduling Queue)

    프로세스가 시스템에 들어오면 job queue에 놓이게 되고, job queue에는 시스템의 모든 프로세스가 올라와 있다.

    주메모리에 존재하며, ready 상태에서 대기 중인 프로세스들은 ready queue에 올라간다.

    I/O 를 대기하는 프로세스들은 device queue에 올라간다.

     

    프로세스들은 life time 동안 상황에 따라 다양한 스케줄링 큐 사이에 있게 된다.

     

    스케줄러

    job scheduler는 대용량 메모리에 있는 프로세스들을 선택하여 메모리에 load 한다.

    CPU scheduler는 실행 준비가 완료된 프로세스들 중 한 프로세스를 CPU에 할당한다.

     

    Context Switching(문맥 교환)

    • interrupt 발생 시 시스템은 interrupt 처리 후 원래 context를 복구하도록 현재 실행 중인 프로세스의 context를 저장해야 함.
    • context는 프로세스의 PCB에 표현됨.
    • CPU를 다른 프로세스로 switch 하기 위해 이전 프로세스 상태를 PCB에 보관하고 새로운 프로세스의 saved context를 복구하는 작업을 문맥 교환이라 함.

    03. operation on Process(프로세스에 대한 연산)

    프로세스 생성

    • 실행되는 동안 프로세스는 여러 개의 새로운 프로세스 생성 가능.
    • 생성하는 프로세스를 부모 프로세스, 생성되는 프로세스를 자식 프로세스라 하며 자식 프로세스가 또 다른 프로세스를 생성할 수 있으며 그 결과 프로세스의 트리를 형성
    • 대부분의 os는 프로세스 식별자인 pid를 사용해 프로세스를 구분함.

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

    프로세스 동기화  (1) 2024.02.18
    Threads 스레드  (0) 2024.02.18
    CH01. 운영체제란? (공룡책)  (0) 2024.02.10
Designed by Tistory.