컨텍스트 스위칭과 프로세스의 소통

zzzzzang_gu·2023년 3월 1일

cs이론

목록 보기
6/13

프로세스의 구조

  • TEXT(CODE) : 코드
  • DATA : 변수/초기화 된 데이터
  • STACK : 임시데이터 (함수 호출, 로컬 변수)
  • HEAP : 코드에서 동적으로 만들어지는 데이터

컨텍스트 스위칭(Context Switching)

문맥 교환, 하나의 흐로세스가 CPU를 사용 중인 상태에서 다른 프로세스가 CPU를 사용하도록 하기 위해, 이전의 프로세스를 보관하고, 새로운 프로세스의 상태를 적재하는 작업
즉 CPU에 실행할 프로세스를 교체하는 기술 ->PC,SP만 교체하면, 프로세스 저장상태를 기반으로 실행 가능

Process Control Block (PCB) : 특정한 프로세스를 관리할 필요가 있는 정보를 포함하는 운영체제 커널의 자료 구조 -> 다음 프로세스의 정보를 저장한다.

PC (Program Counter) : 다음에 실행할 명령어의 주소 저장

SP (Stack Pointer) : 스택의 현재 최상위 위치를 가르키는 데이터 레지스터.

컨텍스트 스위칭 세부 동작

  1. 실행 중지할 프로세스 정보를 해당 프로세스의 PCB에 업데이트해서, 메인 메모리에 저장
    (프로세스1 pcb 정보를 메인메모리에 저장)

  2. 다음 실행할 프로세스 정보를 메인 메모리에 있는 해당 PCB정보(PC,SP)를 CPU의 레지스터에 넣고 실행
    (프로세스2 pcb정보를 메인메모리에 로드)



프로세스간 커뮤니케이션

프로세스는 다른 프로세스의 공간을 접근할 수 없다.

프로세스간의 통신이 필요한 이유

  • 성능을 높이기 위해 여러 프로세스를 만들어서 동시 실행
  • 이 때 프로세스간 상태 확인 및 데이터 송수신이 필요

IPC - (InterProcess Communication)

프로세스간 통신 방법을 제공하는 기법, 프로세스는 프로세스끼리 통신이 불가능하다. 다른 프로세스에 의해 코드나 데이터가 변하는 것을 막기위해 직접적으로 통신을 할 수 없다.
프로세스간 커널 공간은 공유하기 때문에 대부분의 IPC기법은 커널공간을 활용한다.

IPC 기법 종류

  • FILE 사용
  • Message Queue
  • Shared Memory
  • Pipe
  • Signal
  • Semaphore
  • Socket

File 기법을 제외한 나머지는 모두 커널 공간을 이용해 통신한다.

0개의 댓글