OS (12) 썸네일형 리스트형 [운영체제] 교착 상태 (Deadlock) 본 게시글은 KOCW 이화여자대학교 반효경 교수님의 강의를 듣고, 책을 참고하여 정리한 내용입니다. 게시글에 포함되는 이미지 자료는 강의에 포함된 강의 자료입니다. 교착 상태(Deadlock)란? 일련의 프로세스들이 서로가 가진 자원(resource)을 기다리며 block된 상태를 교착상태(deadlock)이라고 합니다. 자원(resource) 하드웨어, 소프트웨어 등을 포함하는 개념 ex) I/O device, CPU cycle, memory space, semaphore 등 프로세스가 자원을 사용하는 절차 Request(요청) -> Allocate(획득) -> Use(사용) -> Release(반납) Deadlock 발생의 4가지 조건 교착 상태가 발생할 조건에는 네 가지가 있습니다. 네 가지 조건 .. [운영체제] 프로세스 동기화 (2/2) 본 게시글은 KOCW 이화여자대학교 반효경 교수님의 강의를 듣고, 책을 참고하여 정리한 내용입니다. 게시글에 포함되는 이미지 자료는 강의에 포함된 강의 자료입니다. Synchronization과 관련된 고전적인 문제 Bounded-Buffer Problem (Producer-Consumer Problem) Readers and Writers Problem Dining-Philosophers Problem 1. Bounded-Buffer Problem(Producer-Consumer Problem) 시나리오 두 종류의 프로세스 존재 1. 생산자(producer) 프로세스: 데이터 생산해서 공유 버퍼에 넣음 2. 소비자(consumer) 프로세스: 데이터를 버퍼에서 꺼내가서 소비 발생 가능한 문제 1. lo.. [운영체제] 프로세스 동기화 (1/2) 본 게시글은 KOCW 이화여자대학교 반효경 교수님의 강의를 듣고, 책을 참고하여 정리한 내용입니다. 게시글에 포함되는 이미지 자료는 강의에 포함된 강의 자료입니다. 데이터 접근 패턴 프로세스 동기화에 대해 알아보기에 앞서 컴퓨터 시스템 내에서 데이터가 접근되는 패턴에 대해 먼저 알아봅시다. 데이터가 저장되어있는 위치에서 읽어와서 연산을 하고 수정된 결과를 다시 데이터에 반영을 하고, 데이터가 저장되는 Storage Box는 공유되기 때문에 동기화(synchronization) 문제가 발생합니다. 공유 데이터(shared data)의 동시 접근은 데이터의 불일치 문제를 발생시킬 수 있습니다. 그렇기 때문에 데이터의 일관성(consistency) 유지를 위해서는 협력 프로세스 간의 실행 순서를 정해주는 메커.. [운영체제] CPU 스케줄링 본 게시글은 KOCW 이화여자대학교 반효경 교수님의 강의를 듣고, 책을 참고하여 정리한 내용입니다. 게시글에 포함되는 이미지 자료는 강의에 포함된 강의 자료입니다. CPU 스케줄링이란? 모든 프로세스는 CPU를 필요로 하고, 먼저 CPU를 사용하고 싶어 합니다. 이러한 프로세스들에게 공정하고 합리적으로 CPU 자원을 할당하기 위해 운영체제는 어떤 프로세스에 CPU를 할당할지, 어떤 프로세스를 기다리게 할지를 결정합니다. 이렇게 운영체제가 프로세스들에게 공정하고 합리적으로 CPU 자원을 배분하는 것을 CPU 스케줄링(CPU Scheduling)이라고 합니다. 프로그램의 실행 단계 (CPU and I/O Bursts) 합리적이고 효율적인 CPU 자원 배분을 위해 어떤 프로세스에게 CPU를 먼저 할당하는 것이.. [운영체제] 스레드 (Thread) 본 게시글은 KOCW 이화여자대학교 반효경 교수님의 강의를 듣고 정리한 내용입니다. 게시글에 포함되는 이미지 자료는 강의에 포함된 강의 자료입니다. 스레드(Thread) 스레드는 프로세스를 구성하는 실행 단위입니다. (lightweight process라고도 불립니다) 하나의 프로세스는 여러 개의 스레드를 가질 수 있으며(최소 하나는 가짐), 스레드를 이용하면 하나의 프로세스에서 여러 부분을 동시에 실행할 수 있습니다. 스레드의 구성 Thread의 구성: CPU 수행과 관련된 정보(공유 하지 않는 부분) Program Counter Register set Stack space Thread간 공유하는 영역 (= task) 메모리 내 Code, Data 영역 (= 메모리 주소 공간) OS resources .. [운영체제] 프로세스 관리 본 게시글은 KOCW 이화여자대학교 반효경 교수님의 강의를 듣고, 책을 참고하여 정리한 내용입니다. 게시글에 포함되는 이미지 자료는 강의에 포함된 강의 자료입니다. 프로세스 계층구조 프로세스는 실행 도중 시스템 호출을 통해 다른 프로세스를 생성할 수 있습니다. 이때 새 프로세스를 생성한 프로세스를 부모 프로세스(parent process), 부모 프로세스에 의해 생성된 프로세스를 자식 프로세스(child process)라고 합니다. 부모 프로세스로부터 생성된 자식 프로세스는 실행 과정에서 또 다른 자식 프로세스를 생성할 수 있고, 그 자식 프로세스도 자식 프로세스를 생성할 수 있습니다. 많은 운영체제는 이처럼 프로세스가 프로세스를 낳는 계층적인 구조(= 트리 구조)로써 프로세스들을 관리합니다. 프로세스 .. [운영체제] 프로세스 상태 본 게시글은 KOCW 이화여자대학교 반효경 교수님의 강의를 듣고, 책을 참고하여 정리한 내용입니다. 게시글에 포함되는 이미지 자료는 강의에 포함된 강의 자료입니다. 프로세스의 상태 하나의 컴퓨터에서 여러 프로세스들이 빠르게 번갈아 가면서 실행되는 과정에서 하나의 프로세스는 여러 상태를 거치며 실행됩니다. 그리고 운영 체제는 프로세스의 상태를 PCB를 통해 인식하고 관리합니다. 프로세스가 가질 수 있는 대표적인 상태는 다음과 같습니다. 1. 생성 상태 - new 프로세스가 생성 중인 상태를 생성 상태(new) 라고 합니다. 2. 실행 상태 - running CPU를 할당 받아 실행 중(= instruction을 수행 중)인 상태를 실행 상태(running)라고 합니다. 우리가 사용하는 대부분의 컴퓨터는 C.. [운영체제] 프로세스 본 게시글은 KOCW 이화여자대학교 반효경 교수님의 강의를 듣고 정리한 내용입니다. 게시글에 포함되는 이미지 자료 또한 해당 강의에 포함된 강의 자료입니다. 프로세스란? 프로세스는 실행 중인 프로그램입니다. PCB (Process Control Block) PCB는 운영체제가 각 프로세스를 관리하기 위해 프로세스당 유지하는 정보입니다. 운영체제는 프로세스 당 PCB를 하나씩 두고(커널 영역에 생성) 이를 이용해 빠르게 번갈아 수행되는 프로세스의 실행 순서를 관리하고, 프로세스에 CPU를 비롯한 자원을 배분합니다. PCB에는 어떤 정보들이 담길까요? PCB의 구성은 위의 그림과 같습니다. (1) OS가 관리상 사용하는 정보 - Process ID(=PID): 특정 프로세스를 식별하기 위해 부여하는 고유한 .. 이전 1 2 다음