-
운영체제 2주차 2CS/운영체제와 시스템 2021. 7. 28. 22:26
여러가지 IPC 기법들
파이프 : 단방향 통신, fork로 자식 프로세스를 만들었을때, 부모자식간의 통신. 커널공간 사용
메세지 큐 : FIFO 정책으로 데이터 전송. 따라서 양방향에서 동시에 전송 불가능. 커널공간 사용
공유 메모리 : 커널 공간에 메모리 공간을 만들고, 해당 공간을 변수처럼 쓰는 방식. FIFO 방식 X, 공유 메모리 Key를 통해 여러 프로세스가 접근 가능
시그널 : 유닉스에서 30년 이상 사용된 기법. 커널 또는 프로세스에서 다른 프로세스에 어떤 이벤트가 발생되었는지를 알려준다.프로세스 상태를 저장하는 PCB에 해당 프로세스가 블록 또는 처리해야하는 시그널 관련 정보 관리
시그널 동작
1. 시그널 무시 2.시그널 블록(블록을 푸는 순간에 프로세스에 해당 시그널 전달) 3.등록된 시그널 핸들러로 특정 동작 수행 4.등록된 시그널 핸들러가 없다면, 커널에서 기본 동작 수행
소켓 : 네트워크 통신을 위한 기술인데, IPC를 위해서도 사용 가능. 즉 하나의 컴퓨터에서 두개의 프로세스간의 통신 기법으로 사용한다.
프로세스의 최적화는 빈번한 IO처리를 줄임으로서 달성 가능. 다시말해 여러번 처리할 정보를 한번에 처리하는 것이 핵심
스레드 : 하나의 프로세스 안에 여러개의 스레드 생성, 동시 실행 가능. 또한 프로세스의 데이터를 별도의 IPC 기법 없이 모두 접근 가능하다
스레드는 각각의 Stack 영역을 가지고 있고, 나머지 Heap, Data, Code 영역은 원본 프로세스와 공유
Pthread : 스레드 관련 표준 API
스레드 vs 프로세스
프로세스는 독립적이고 스레드는 프로세스의 부분집합
프로세스는 각각 독립적인 자원을 가지고, 스레드는 프로세스의 자원을 공유함
프로세스는 자신만의 주소영역을 가지고, 스레드는 주소영역을 공유
프로세스간에는 IPC를 통해 통신해야 하지만 스레드는 필요없음
스레드 장점 : CPU 활용도 높임(멀티 프로세싱), 성능 개선, 응답성 향상, 자원 공유성 높음
단점 : 하나의 스레드 문제가 프로세스 전반에 영향을 미치고, 여러 스레드 생성시 성능 저하가 일어날 수 있음
'CS > 운영체제와 시스템' 카테고리의 다른 글
운영체제 2주차 4 (0) 2021.07.29 운영체제 2주차 3 (0) 2021.07.29 운영체제 2주차 1 (0) 2021.07.27 운영체제 1주차 5 (0) 2021.07.26 운영체제 1주차 4 (0) 2021.07.23