CS/운영체제14 [운영체제 OS] Deadlock (교착상태) Deadlock이란? 일련의 프로세스들이 서로 가진 자원을 요청하고 기다리며 blocked된 상태 Deadlock 발생 필요조건 4가지 Mutual Exclusion (상호 배제) - 한 자원에 대해 여러 프로세스 접근이 불가함 Hold and Wait (점유와 대기) - 프로세스가 자원을 가지고 있는 상태로 다른 프로세스가 사용하고 있는 자원의 반납을 기다림 No preemption (비선점) - 다른 중요한 프로세스가 들어와도 현재 수행하는 프로세스를 계속 수행함 Circular Wait (순환대기) - 각 프로세스가 순환적으로 다음 프로세스가 요구하는 자원을 소유함 Deadlock 처리 방법 Deadlock 해결 방법에는 예방, 회피, 회복, 무시 4가지가 존재하지만, 대표적인 방법인 회피에 대해서.. 2021. 8. 23. [운영체제 OS] Synchronization Race Condition 여러 프로세스가 동기화 없이 동시에 공유 자원에 접근하여 결과값에 영향을 줄 수 있는 상태 자료의 일관성 문제가 발생 예시 ) 남자친구, 여자친구가 긱자 데이트 통장에서 동시에 돈을 인출하는 상황 Critical Section Problem (임계 영역 문제) Critical Section은 공유 데이터를 접근하는 코드 부분을 의미 Critical Section Problem은 한 프로세스가 처리되고 있는 도중 다른 프로세스가 접근하여 발생하는 동기화 문제 Critical Section Problem 해결하기 위한 3가지 기본조건 Mutual Exclusion (상호 배제) : 어떤 프로세스가 Critical Section부분을 수행 중이면, 다른 프로세스는 Critical S.. 2021. 8. 23. [운영체제 OS] Process vs Thread 1. Process vs Thread Process 실행중인 프로그램으로 운영체제로 부터 CPU 할당을 받을 수 있는것 프로세스는 각자 독립된 공간(Code, Data, Heap, Stack)을 가진다. 프로세스 간 직접적인 통신이 불가하며, IPC(Inter-Process Communication) 방식을 통해서만 가능하다. Message Passing : 운영체제(커널)의 도움을 받아 프로세스간 통신. 커널이 알아서 동기를 맞춰주지만, 오버헤드 높음. Shared Memory : 공유 메모리 공간을 통해 프로세스간 통신. 동기를 직접 맞춰줘야하지만 오버헤드 낮음. 프로세스는 기본적으로 1개 이상의 스레드(메인스레드)를 가진다. Thread 프로세스 내에서 실행되는 여러 흐름의 단위, 경랑 프로세스 스.. 2021. 8. 21. [운영체제 OS] CPU Scheduling Scheduling Criteria 스케줄링의 성능평가에는 크게 5가지 지표가 사용된다. 이 지표들은 앞선 Process 글에서 설명했던 CPU-bound Process와 I/O-bound Process관점으로 나누어볼 수 있다. 1. CPU 사용률 : 전체시간 중 CPU가 놀지않고 일한 시간 2. 처리량 : 단위시간당 처리량 3. 소요시간 : 프로세스가 다 수행되고 도착하는데까지 걸리는 시간 4. 대기시간 : Ready Queue에서 기다리는 시간 5. 응답시간 : 중간중간 사용자에게 응답주는 시간 시간보다 처리량이 중요한 CPU-bound Process에서는 1,2번을 maximize하는 방향으로, 사용자와 interactive한 I/O-bound Process에서는 3,4,5번을 minimize하는.. 2021. 8. 21. [운영체제 OS] Process Scheduler Process Scheduling Queues 프로세스를 스케줄링 하기 위한 3가지 큐가 존재한다. Job Queue - 모든 프로세스 저장하는 큐 Ready Queue - 실행 가능한 프로세스들이 CPU에 자원할당 받기 위해 기다리는 큐 Device Queue - I/O 장치에서 작업 처리하는 동안 프로세스들이 대기하는 큐 Long-term Scheduler (New -> Ready) 메모리는 한정되어 있는데 많은 프로세스들이 한꺼번에 메모리에 올라올 경우, 대용량 메모리(일반적으로 디스크)에 임시로 저장된다. 이 pool 에 저장되어 있는 프로세스 중 어떤 프로세스에 메모리를 할당하여 ready queue 로 보낼지 결정하는 역할을 한다. Time-sharing을 사용하는 현 컴퓨터에서는 사용하지 않.. 2021. 8. 18. [운영체제 OS] Process / PCB / Context Switch Process란? 실행중인 프로그램으로 스케줄링의 기본 단위이다. 프로세스가 실행되기 위해서는 메모리 공간에 올라가 있어야하는데, 그 공간을 Process Address Space라고 한다. 프로세스의 주소공간 (Process Address Space) Stack - 함수 호출시 지역변수와 매개변수를 저장하며, 함수 종료시 사라짐 Heap - 동적으로 메모리 할당시에 사용하며 메모리 할당 해제 전까지 사라지지 않음 Static data - 정적 데이터를 저장하는 곳으로 한번 저장하면 바뀌지 않고 프로그램 종료시 사라짐 Code - 기계어 저장 프로세스 2가지 구분 a. CPU-bound process - I/O burst < CPU burst 로 주로 연산위주의 프로세스를 의미 (ex : 기상청, 슈퍼컴.. 2021. 8. 18. 이전 1 2 3 다음