ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Process Concept
    전공 지식/OS 2018. 8. 9. 20:34

    Process : 실행되고 있는 프로그램, 메모리에 올라와있는 Program

    ∴ Process != Program



    Process in memory

    process in memory에 대한 이미지 검색결과    data & text = Program 에 존재


    Process is more than program code

    Stack + Heap + PCB => Processor register


    PCB (Process Control Block) - 구조체 타입 // 프로세스에 대한 모든 정보를 담고 있음 

    - Process state

    - Process counter                               ==> 컨텍스트 스위치, System Call을 호출했을 때, 레지스터를 저장하는 곳

    - CPU regusters ( Stack Pointer)        ==>                                   ""


    Process scheduling

    - Process scheduling queue (Job queue, Ready queue, Device queue)

    ( 프로세스는 다양한 큐를 이동함)

    - I/O-bound process         => 높은 우선순위를 가짐

    - CPU-bound process       => CPU를 너무 많이 사용하기 때문에 우선순위가 낮음


    Context Switch

    - CPU가 다른 프로세스로 교체할 때, 

    Old Process의 상태를 저장 (PCB에 저장)

    & 새로운 프로세스의 상태를 로드해야함


    Process creation - FORK

    Process termination - EXIT


    fork system call

    - fork 함수를 호출한 process => parent process

    -                   생성된 process => child process

    Resource sharing - Parent / Children 은 파일을 공유함

    Execution - PCB가 별도로 있음, 별도로 실행됨

    Address space - 주소 공간은 나눠져있지만 중복으로 있음

    Call once, return twice - Parent 와 Child는 각각 리턴값을 가짐


    RETURN VALUE

    pid < 0     : error

    pid == 0   : Child Process

    pid > 0    : Parent Process


    Producer-consumer Problem


    - 여러개의 프로세스를 어떻게 동기화 시킬 것 인가에 대한 문제

    한정 버퍼 문제라고 한다.


    Producer                                   Consumer

    2. Producing a data                   1. Spin lock - waiting

         3. Consuming data

    '전공 지식 > OS' 카테고리의 다른 글

    Deadlocks  (0) 2018.08.16
    Process synchronization  (0) 2018.08.09
    Process scheduling  (0) 2018.08.09
    Multithreaded Programming  (0) 2018.08.09
    System structure  (0) 2018.08.09

    댓글