observe_db

[OS] 3. 프로세스(Process)(2) 본문

학교 공부/운영체제(OS)(3-1)

[OS] 3. 프로세스(Process)(2)

쩡윤 2023. 4. 5. 20:12

3/20

 

Part 3.

프로세스 종료

  • 마지막 명령어 실행 후 OS에 프로세스 삭제 요청
    • wait()를 통해 부모로 데이터 전달.
    • 자원은 OS에 의해 반납
  • 비정상 종료도 있음
    • abort() 사용.
    • 시그널 SIGABRT를 발생시키고, 시그널 처리기 있으면 호출, 없으면 비정상종료
    • 일부 자원 반납처리 부재)
  • 부모 프로세스가 kill()을 통해 자식 프로세스 종료 가능
    • 자식이 배정된 자원을 초과 사용하는 경우
    • 할당된 작업이 필요 없는 경우
  • 부모가 종료되는 경우
    • 어떤 특정 OS는 자식 프로세스 강제 종료(모든 자식의 연쇄 종료)

 

프로세스 일시중지(suspend)

  • 종료는 아니고, 프로세스 사용을 위한 경쟁에서 배제
    • 보안 위협 감지, 소프트웨어 debug에 유용
  • 자신이나 다른 프로세스가 일시중지 가능.
  • 재시작(resume)은 다른 프로세스에 의해(자기는 돌아가지 않으므로)
  • suspended-ready(준비)/suspended-blocked(대기) 상태

 

 

문맥교환(context switching)

  • OS의 실행중인 프로세스를 중지시키고, 준비 상태 프로세스 시작
  • 실행중인 실행 문맥(execution context, 레지스터 정보 등)을 PCB에 저장
  • 준비상태의 프로세스의 PCB내용을 레지스터 등에 적재
  • 시간의 최소화 필요(어떤 컴퓨터 구조는 하드웨어적으로 실행)

 

Part4. 프로세스간 통신

프로세스간 통신(interprocess communication, IPC)

  • 프로세스간 데이터를 주고받을 수 있게 하는 것
    • 하나의 컴퓨터 내의 프로세스간
    • 네트워크를 통한 다른 컴퓨터 상 프로세스간
  • 서로 필요한 설정 필요
  • signal/pipe/message passing/shared memory/socket/Remote procedure call(RPC)

 

시그널(signal, 신호)

  • event 발생시 프로세스에 알려주는 소프트웨어 인터럽트
  • 발생 자체만 전송(데이터는 불가)
  • 프로세스는 시그널의 수신(catch)/무시(ignore)/마스킹(mask) 가능

메시지 전달(message passing) 기반 프로세스간 통신

  • 전송 방향: 한번에 한방향/양방향
  • 전송 방식: 대기 전송(blocking,수신 확인 요구)/비대기 방식(non-blocking, 일방적 전송)

파이프(pipe)

  • 두 프로세스가 데이터를 교환할 수 있게 하는 buffer 역할을 하는, OS가 관리하는 영역
  • 두개의 끝을 가지는 채널(통로)--커널의 메모리공간 구현
  • pipe()로 파이프 생성+2개 파일 디스크립터(descriptor)생성

소켓(socket)

  • 분산 시스템에서 프로세스간 통신 지원
  • IP주소와 포트번호로 식별되는 통신 단말 제공
  • 클라이언트-서버 구조 사용

 

RPC(Remote PRoceduce call, 원격 프로시저 호출)

  • 다른 컴퓨터의 함수나 프로시저를 원격 사용을 위한 코딩 없이 프로그램에서 실행하는 기술
  • Remote invocation(원격 호출), remote method invocation(RMI, 원격 메소드 호출)이라고도 불림
  • Java RMI

Comments