2021. 2. 23. 17:51ㆍComputer(인강)/운영체제
안녕하세요 bannavi입니다^ㅅ^
오늘은 IPC 기법 2 시간이에요
바로 시작해보겠습니다^ㅅ^
signal과 socket
IPC 기법이지만, 이외에도 많이 사용되는 두가지 기술
- 시그널(signal)
- 소켓(socket)
-> 사실은 IPC기법을 위해서 만들어진건 아니고, 다른 목적을 가지고 있지만
그 특별한 목적 이외에도 프로세스간 커뮤니케이션을 위해서도 사용할 수 있다.
시그널(signal) - 일종의 이벤트
- 유닉스에서 30년 이상 사용된 전통적인 기법
- 커널 또는 프로세스에서 다른 프로세스에 어떤 이벤트가 발생되었는지를 알려주는 기법
- 프로세스 관련 코드에 관련 시그널 핸들러를 등록해서, 해당 시그널 처리 실행
1. 시그널 무시
2. 시그널 블록(블록을 푸는 순간, 프로세스에 해당 시그널 전달)
3. 등록된 시그널 핸들러로 특정 동작 수행
4, 등록된 시그널 핸들러가 없다면, 커널에서 기본 동작 수행
실제로 어떻게 처리를 하나요?
- PCB에 해당 프로세스가 블록 또는 처리해야하는 시그널 관련 정보 관리
PCB는 실제로 어떻게 동작을 하는가?
-> signal은 커널모드에서 사용자모드로 전환할 때 항상 체크를 해서 처리를 한다.
주요 시그널: 기본 동작
1. SIGKILL :프로세스를 죽여라(슈퍼 관리자가 사용하는 시그널로, 프로세스는 어떤 경우든 죽도록 되어있음)
2. SIGALARM: 알람을 발생한다
3. SIGSTP: 프로세스를 멈춰라(Ctrl + z)
4. SIGCONT: 멈춰진 프로세스를 실행해라
5. SIGINT: 프로세스에 인터럽트를 보내서 프로세스를 죽여라(Ctrl + c)
6. SIGSEGV: 프로세스가 다른 메모리영역을 침범했다
저 SIGINT를 받으면 원래 기본 동작을 실행하지 말고, signal_handler를 실행시켜라 라는 의미
시그널 핸들러 무시도 있는데
이 시그널은(SIGINT) 받으면 기본동작 하지말고 무시해버려라 라는 의미
소켓(socket)
- 소켓은 네트워크 통신을 위한 기술
- 기본적으로는 클라이언트와 서버등 두개의 다른 컴퓨터간의 네트워크 기반 통신을 위한 기술
소켓은 간단하게 말해서 네트워크 기기를 이용할 수 있는 시스템콜이라고 말할수도 있음.
-> 컴퓨터 간이 아니라 자기 컴퓨터 안에서 또다른 프로세스에다가도 데이터를 전달하거나 받을수도 있기 때문에
이 소켓이 IPC기법으로도 사용될 수 있다.
소켓(socket)과 IPC
소켓을 하나의 컴퓨터 안에서, 두 개의 프로세스간에 통신 기법으로 사용 가능
정리
pipe나 message queue, shared memory기법들은 IPC를 위해 나온것이고,
시그널(signal)이나 소켓(socket)은 IPC기법을 위해서 나온것은 아니지만, 그 기능을 이용해서
IPC처럼 쓸 수 있다.
'Computer(인강) > 운영체제' 카테고리의 다른 글
스레드 개념 (0) | 2021.02.23 |
---|---|
프로세스 총정리와 프로그램 성능 개선 방법의 이해 (0) | 2021.02.23 |
참고_IPC 기법 1 (0) | 2021.02.23 |
프로세스와 IPC (0) | 2021.02.23 |
프로세스간 커뮤니케이션 (0) | 2021.02.23 |