전체 글319 Deadlock deadlock (교착 상태) : 일련의 프로세스들이 서로가 가진 자원을 기다리며 block된 상태. Resource (자원) : - 하드웨어, 소프트웨어 등을 포함하는 개념 - ex) I/O device, CPU cycle, memory space, semaphore 등 - 프로세스가 자원을 사용하는 절차 : Request, Allocate, Use, Release Deadlock Example 1 - 시스템에 2개의 tape drive가 있다. - 프로세스 P1과 P2 각각이 하나의 tape drive를 보유한 채 다른 하나를 기다리고 있다. Deadlock Example 2 - binary semphores A and B (아래 캡처) --> 즉 P0, P1 모두 A, B 둘 다 필요한 상황에서 P.. 2022. 8. 21. Process Synchronization process synchronization에 대해 학습하기 전에 먼저 시스템 안에서 데이터가 접근되는 패턴에 대해서 간단하게 알아보자. 위 그림처럼 연산을 위해서 연산할 데이터를 가져오고, 연산된 결과를 어딘가에 저장하는 것이 시스템 어느 곳에서나 작동하는 메커니즘이다. 데이터를 저장하는 곳을 storage box, 연산하는 곳을 execution box라고 하면 Execution Box가 'CPU'일때, Strorage Box는 '메모리', Execution Box가 '컴퓨터 내부'일때, Strorage Box는 디스크, Execution Box가 '프로세스'일때, Strorage Box는 '해당 프로세스의 주소 공간' 일 수 있을 것이다. 만약 데이터를 읽기만하면 누가 어디서 읽든 몇 개의 박스가 데.. 2022. 7. 10. CPU 스케쥴링 CPU 스케쥴링 CPU를 어떤 프로세스에 얼마나 할당할지를 정해준다. CPU 스케쥴러는 운영체제 안에 있는 기능 중 하나이다. 프로그램은 IO작업과 CPU의 연산을 돌아가며 수행한다. 아래의 그림과 같다. CPU burst : CPU의 명령을 처리하는 부분 I/O burst : I/O 요청을 처리하는 부분 (즉 I/O 요청의 처리를 기다리는 시간) 프로그램마다 서로 CPU와 I/O burst를 번갈아가면서 수행되는 수는 물론 다를 것이다. 주로 일반 사용자들이 사용하는 상용 프로그램들은 번갈아가는 수가 굉장히 많을 것이고(I/O 처리가 많이 발생하므로), 엄청난 양의 계산을 해야하는 프로그램은 CPU 수행(CPU burst)이 압도적으로 많을 것이다. 아래는 CPU burst time의 분포이다. 여러 .. 2022. 7. 1. 5. 프로세스 - 스레드 "thread (or lightweight process) is a basic unit of CPU utilization" thread의 구성 : - program counter - regiter set - stack space thread가 동료 thread와 공유하는 부분(=task) : - code section - data section - OS resources 스레드는 프로세스 내부에 CPU의 수행 단위가 여러 개 있는 것이다. 운영체제는 각 프로세스 마다 하나씩 프로세스를 관리하기 위해 PCB를 만든다고 하였다. 여러 개의 스레드를 둔다는 것은 아래와 같이 하나의 PCB는 그대로 사용하고, PC, register, stack space는 각 스레드마다 두고 나머지는 공유한다. 프로세스가 하나.. 2022. 6. 21. 이전 1 ··· 7 8 9 10 11 12 13 ··· 80 다음