ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 프로세스
    운영체제 2021. 3. 27. 23:45

    멀티프로그래밍

    - 한 프로그램이 CPU를 독점하지 않고 IO를 하는 시점에 다른 프로그램이 CPU를 사용할 수 있다

    - Throughput : 단위 시간 동안 더 많은 프로그램의 작업을 수행한다. 생산성 향상

    - Utilitzation : CPU의 이용률이 증가한다

    - Degree of multiprogramming : 동시에 수행하는 프로그램 수 가 증가한다

     

     

    프로세스

    - 실행 중인 프로그램, 메로리에 로드된 상태를 명심

    - text : 프로그램의 코드

    - stack : 메서드의 변수 저장

    - data : 전역 변수 영역

    - heap : 동적 할당 영역

     

     

    프로세스 상태

    - new

    - ready

    - running

    - waiting

    - terminated

     

     

    PCB(Process Control Block)

    - 운영체제가 프로세스를 관리하기 위해 만든 자료구조(구조체)

    - 보통 이중연결리스트로 구성함

     

    프로세스의 컨텍스트 스위칭 과정

    - P1에서 인터럽트 발생 후 CPU제어가 운영체제로 넘어감

    - 운영체제는 P1의 모든 상태 정보를 PCB1에 저장 후 P2를 실행

    - 운영체제는 PCB2에서 P2의 상태값을 하드웨어로 옮김

    이 과정을 프로세스의 컨텍스트 스위치라고 하고 멀티프로그래밍 체제에서 불가피한 오버헤드이다.

     

     

    프로세스 스케줄러

    - short term scheduler(CPU scheduler)

    : ready queue에 있는 프로세스 중 실행할 프로세스를 선택하는 작업

    - long term scheduler

    : new상태인 프로세스 중 ready 상태로 전환할 프로세스를 선택하는 작업

    멀티프로그래밍 시스템에서 degree of multiprogramming을 조절하는 역할

    - medium term scheduler

    : degree of multiprogramming이 높은 경우 프로세스를 디스크로 내쫓는 swapping 작업을 수행한다

     

     

    IPC(Interprocess Communication)

    - 각 프로세스는 기본적으로 독립적이지만 필요에 따라 통신할 수 있으며 운영체제가 그 기능을 제공

     

    Shared Memory 기법

    - 특별한 API없이 공유메모리를 사용하는 측면에서 편할 수 있다.

    - 동시성 이슈를 프로세스레벨에서 신경써야하며 이는 굉장히 어려운 일이다.

     

    Message Passing

    - 커널이 제공하는 공유 메모리를 사용한다.

    - 커널의 기능이기 때문에 시스템콜을 이용해야 한다.

    - 동시성 이슈는 커널이 관리하기 때문자 사용자 레벨에서는 신경쓰지 않아도 된다.

    - non-blocking send : 비동기적인 메세지 전송, 리시버가 받든 안 받든 신경쓰지 않고 메세지 전송

    - non-bounded send : 버퍼가 꽉찰 걸 고려하지 않고 그냥 버퍼에 메세지를 전송

    댓글

Designed by Tistory.