전체 글

전체 글

    8.좀비 프로세스와 고아 프로세스

    좀비 프로세스와 고아 프로세스좀비 프로세스와 고아 프로세스좀비 프로세스고아 프로세스좀비 프로세스부모 프로세스가 자식 프로세스의 종료 상태를 회수하지 않았을 경우 남겨진 자식 프로세스자식 프로세스가 종료될 때 부모 프로세스에 SIGCHLD라는 시그널을 보내면 부모 프로세스에서 wait) 함수(시스템 콜)을 호출해 자식 프로세스의 상태 정보를 받고 자원을 회수한다.이때 자원 회수에 실패하면 좀비 프로세스가 생기게 된다.좀비 프로세스가 쌓이면 자원이 낭비될 수 있다.고아 프로세스부모 프로세스가 자식 프로세스보다 먼저 종료되는 경우의 자식 프로세스자식 프로세스의 부모 PID를 init 프로세스(부팅 시 가장 먼저 실행되는 프로세스)의 PID인 1로 바꿔 준다.이렇게 하면 고아 프로세스의 부모 프로세스는 init..

    7.IPC

    IPC(Inter Process Communication)IPC(Inter Process Communication)공유 메모리파일소켓익명 파이프명명된 파이프메시지 큐프로세스끼리 데이터를 주고받고 공유 데이터를 관리하는 매커니즘공유 메모리여러 프로세스에 동일한 메모리 블록에 대한 접근 권한이 부여되어 프로세스가 서로 통신할 수 있도록 공유 메모리를 생성하여 통신특징가장 빠름 : 메모리 자체를 공유하기에 불필요한 데이터 복사의 오버헤드가 발생하지 않음동기화 필요 : 같은 메모리 영역을 여러 프로세스가 공유하드웨어 관점에서공유 메모리는 CPU가 접근할 수 있는 큰 랜덤 접근 메모리인 RAM을 가리키기도 함파일디스크에 저장된 데이터 또는 파일 서버에서 제공한 데이터. 이를 기반으로 프로세스 통신을 함소켓동일한 ..

    6.교착 상태

    교착 상태교착 상태교착상태란(Dead Lock)교착 상태 발생의 필요 충분 조건교착 상태의 해결 방법은행원 알고리즘교착상태란(Dead Lock)둘 이상의 프로세스들이 자원을 점유한 상태에서 서로 다른 프로세스가 점유하고 있는 자원을 요구하며 무한정 기다리는 현상상호 배제에 의해 나타나는 문제점자동차(프로세스)들이 현재 위치한 길(자원)을 점유함과 동시에 다른 차가 사용하는 길을 사용하려고 대기하고 있지만 다른 길을 사용할 수 없으며 현재 길에서도 벗어나지 못하는 상태이다.교착 상태 발생의 필요 충분 조건이 네 가지 조건 중 하나라도 충족되지 않으면 교착 상태가 발생하지 않는다.상호 배제(Mutual Exclusion) : 한 번에 한 개의 프로세스만이 공유 자원을 사용점유와 대기(Hold and Wait..

    5.프로세스 동기화

    프로세스 동기화프로세스 동기화경쟁 상태(race condition)경쟁 상태 문제 Case 1 - 무결성 위반경쟁 상태 문제 Case 2 - 정합성 위반임계 영역(critical section)프로세스 동기화(process synchronization)뮤텍스세마포어 (semaphore)모니터 (monitor)경쟁 상태(race condition) 여러 프로세스 또는 스레드에서 공유 자원에 동시에 접근해 경쟁하는 상태여러 프로세스 또는 스레드에서 하나의 공유 자원에 접근하는 경우, 데이터베이스에서 여러 트랜잭션이 동일한 레코드에 접근할 때 자원에 접근하는 순서에 따라 결과 값이 달라질 수 있다. 경쟁 상태 문제 Case 1 - 무결성 위반통장 잔고를 예시로 들어보자. 위 그림 처럼 2개의 쓰레드와 잔고라는..

    4. 멀티 프로세스와 멀티 스레드

    멀티프로세스와 멀티스레드멀티프로세스와 멀티스레드멀티 프로세스(Multi Process)개념장점단점멀티 스레드(Multi Thread)개념장점문제점멀티 스레드 vs 멀티 프로세스Reference멀티 프로세스(Multi Process)개념하나의 어플리케이션을 여러 개의 프로세스로 구성하여 다수의 프로세서(CPU)가 각 프로세스를 병렬 처리, 즉 동시 처리하는 것이다.각 프로세스 간 메모리 구분이 필요하거나 독립된 주소 공간을 가져야 할 경우 사용한다.프로세스 간 통신을 하기 위해서는 IPC를 통해야 한다.장점프로세스 간 독립된 구조로 안정적이다.프로세스 중 하나에 문제가 생겨도 다른 프로세스에 영향을 주지 않으므로, 작업이 정지되지 않는다.프로세스 간 메모리 침범 문제를 OS 차원에서 해결할 수 있다.단점각..

    3. 멀티 태스킹과 PCB와 컨텍스트 스위칭

    멀티 태스킹과 PCB와 컨텍스트 스위칭멀티 태스킹과 PCB와 컨텍스트 스위칭멀티 태스킹Context Switching(문맥교환)프로세스 제어 블록(Process Control Block, PCB)멀티 태스킹개념 : OS를 통해 CPU가 작업하는데 필요한 자원(시간)을 CPU 스케쥴링을 통해 여러 프로세스 또는 스레드간에 나누는 행위장점 : 이를 통해 여러 응용 프로그램을 동시에 열고 작업 할 수 있다.과정 : 여러 작업이 동시에 이루어지기 때문에 실제로 동시에 작업이 이루어지는 것 같지만 CPU는 한번에 한가지 명령어 밖에 처리하지 못한다. CPU의 작업속도가 빠르기 때문에, 프로세스들을 번갈아가며 실행하고 관리하는 것이 마치 동시에 하는 것처럼 보일 뿐이다. 이를 Context Switching(문맥교..