Computer(인강)/운영체제(41)
-
참고_IPC 기법2
안녕하세요 bannavi입니다^ㅅ^ 오늘은 IPC 기법 2 시간이에요 바로 시작해보겠습니다^ㅅ^ signal과 socket IPC 기법이지만, 이외에도 많이 사용되는 두가지 기술 - 시그널(signal) - 소켓(socket) -> 사실은 IPC기법을 위해서 만들어진건 아니고, 다른 목적을 가지고 있지만 그 특별한 목적 이외에도 프로세스간 커뮤니케이션을 위해서도 사용할 수 있다. 시그널(signal) - 일종의 이벤트 - 유닉스에서 30년 이상 사용된 전통적인 기법 - 커널 또는 프로세스에서 다른 프로세스에 어떤 이벤트가 발생되었는지를 알려주는 기법 - 프로세스 관련 코드에 관련 시그널 핸들러를 등록해서, 해당 시그널 처리 실행 1. 시그널 무시 2. 시그널 블록(블록을 푸는 순간, 프로세스에 해당 시그..
2021.02.23 -
참고_IPC 기법 1
안녕하세요 banavi입니다^ㅅ^ 오늘은 각각의 IPC기법을 조금 깊이있게 살펴보려고 합니다. 바로 시작해볼게요 고고! 1. file 사용(실시간성이 떨어지고, 저장매체를 다녀오기 때문에 시간이 많이 걸립니다) 2. Message Queue 3. Shared Memory 4. Pipe 5. Signal 6. Semaphore 7. Socket 지난 시간에 2번부터 7번까지는 결과적으로 프로세스가 커널 공간을 공유한다는 내부적인 특징이 있기때문에 그 기술을 기반으로 해서 다양한 기법들이 나왔다고 했었죠. 먼저 pipe(파이프)입니다 - 기본 파이프는 단방향 통신 - fork()로 자식 프로세스 만들었을 때, 부모와 자식간의 통신 메시지 큐(message queue) - 큐니까, 기본은 FIFO 정책으로 데..
2021.02.23 -
프로세스와 IPC
안녕하세요 bannavi 입니다^ㅅ^ 지난 시간에 이어서 다양한 IPC의 종류에 대해 알아볼게요! 먼저 개념을 알아야해요 리눅스 체제의 프로세스 공간에 대해서 살펴볼게요 하나의 프로세스는 그림처럼 모두 4G입니다. 엇 그렇다면 만약 내 메모리가 16G라면 용량이 너무 적잖아욥!!!! -> 가상 주소라고 생각하세요 이걸 물리적 주소로 옮기는 과정도 필요한데 이건 또 가상메모리 부분에서 차근차근 다뤄볼게요. 음... 아니면 지금 쪼끔 살펴보면 주소 공간은 일부분만 사용하게 되는거구요 이 공간중에 극히 일부분만 메모리에 들어가게 되기 때문에 큰 이슈가 없습니다 그리고 커널공간은 공유가 가능해요! 일단은 하나의 프로세스는 그림처럼 모두 4G라는 건데요! 3~4G까지는 운영체제 코드가 들어가는 공간이구요0~3G까..
2021.02.23 -
프로세스간 커뮤니케이션
안녕하세요 bannvi입니다^ㅅ^ 이번시간에는 프로세스간 커뮤니케이션을 다뤄볼거에요 바로 시작하겠습니다^ㅅ^ 사실 프로세스간 커뮤니케이션을 할 수 있는 직접적인 방법은 없습니다. 제한을 해놨어요. 남의 프로세스의 주소를 접근할 수 있는 방법은 제공을 하고 있지 않다는 말이에요. -> 프로세스에 있는 코드가 다른 프로세스의 코드나 데이터에 접근 할 수 있게 된다면, 프로세스 데이터 코드가 바뀔 수 있으면 얼마나 위험할까요? 스택오버플로우를 생각해보면 이건 해킹에 가깝죠..! 그럴땐 어떻게 해야할까요? 바로, 특별한 IPC(Inter Process Communication) 기법을 사용해야해요 프로세스간 통신 방법을 제공한답니다 아니 근데, 프로세스간 통신이 필요한 이유는 뭘까요? CPU의 core가 여러개..
2021.02.23 -
컨텍스트 스위칭 개념 정리
안녕하세요 bannavi입니다^ㅅ^ 오늘은 컨텍스트 스위칭의 개념정리를 해보겠습니다 바로 시작해볼게요 고고! 프로세스와 컨텍스트 스위칭 Context Switching (문맥 교환) - CPU에 실행할 프로세스를 교체하는 기술 1. 실행 중지할 프로세스 정보를 해당 프로세스의 PCB에 업데이트해서, 메인 메모리에 저장 2. 다음 실행할 프로세스 정보를 메인 메모리에 있는 해당 PCB 정보를 CPU에 넣고, 실행 프로세스 PCB정보에 해당 CPU 레지스터 정보를 저장한다. (메인메모리에 저장하냐 마느냐 하는것은 운영체제에서 어떻게 구현하느냐에 따라 다를 수 있다) 디스패치 (dispatch) : ready 상태의 프로세스를 running 상태로 바꾸는 것 해당 PCB 정보를 CPU에 넣고, 실행 만일 컨텍..
2021.02.22 -
컨텍스트 스위칭
안녕하세요 bannavi 입니다^ㅅ^ 오늘은 컨텍스트 스위칭 원리에 대해 살펴볼거에요 저는 진짜....프로세스 구조가 제일 제일 어려운거같아요.. 한국말이지만 외국말인 느낌이랄까요 ㅠ,,ㅠ 후 이것도 듣다보면 괜찮아 지겠지요? 하하.. 그럼 오늘도 바로 시작해보겠습니다 :) PC(Program Counter) + SP(Stack Pointer) 에 주목하자! Process Control Block(PCB) (Process Context Block이라고도 함) 1. Process ID - 프로세스마다 id가 있다 2. Register 값(PC, SP 등) 3. Scheduling Info (Process State) - 어떤 info냐면 프로세스 상태가 ready인지 block인지 running인지.. 4..
2021.02.22