본문 바로가기

전체 글12

교착상태(Dead lock) 교착상태(Dead lock)란? 한정된 컴퓨터 자원을 여러 프로세스가 사용하려고 할 경우 발생한다. 프로세스는 특성상 자신의 업무처리를 위하여 필히 운영체제에게 자원을 요청하게 되는데 이때 프로세스의 상태는 대기상태로 전환된다. 만약 여러 프로세스가 서로 같은 자원을 사용하려고 한다면? 당연하게도 어떤 프로세스는 자원을 사용하지 못하여 대기상태로 들어가게 될 것이다. 이때, 대기상태의 프로세스가 더이상 실행상태로 변경될 수 없을 경우에 이것을 교착상태라고 부른다. [교착상태의 필요조건 4가지] 1. Mutual exclusion(상호 배제) > 오직 하나의 프로세스만이 자원을 사용할 수 있다. 2. Hold and Wait(점유와 대기) > 자원을 점유 중인 프로세스가 또다른 자원을 사용하기 위하여 대기.. 2020. 7. 13.
운영체제의 5가지 특징 및 부트스트랩 로더(Bootstrap loader) 운영체제에는 5가지의 특징이 있다. 1. Simple structure > 모듈화 및 계층화가 되어있지 않은 원시 OS의 구조로, User 프로그램의 하드웨어 접근이 가능하였다. 현대의 OS는 복잡한 구조로 설계되어 있으므로 해당 구조는 사용되지 않는다. 2. Layered approach > OS를 계층화하여(Level 0 ~ N) 각 계층별로 역할을 분리한 구조로, 상위계층은 하위계층의 기능을 사용할 수 있다. 디버깅과 프로그램 구현에 있어 용이하다. 그 이유는 프로그래머가 하위 계층의 내용을 전혀 신경쓰지 않아도 되기 때문이다. 3. Microkernel > 기존의 Kernel 기능(프로세스, 메모리, 파일시스템, 입출력장치 관리)에서 핵심인 프로세스 기능만 남겨두고 나머지 기능들은 User 레벨로.. 2020. 4. 24.
프로세스(Process) 프로세스는 무엇일까? 프로세스를 얘기하려면 먼저 프로그램을 얘기해야한다. 프로그램이란 디스크에 존재하는 Passive한 Entity를 의미한다. 그렇다면 프로세스는? 프로세스도 프로그램이라고 생각하면 된다. 하지만!!!! 이름에서도 다르듯이 프로세스는 실행중인 프로그램이다. 즉, 프로세스란 메모리에 load되어 실행중인 프로그램이다. 결국 실행중이냐 아니냐의 차이로 둘을 구분 지을 수 있다. 프로세스는 메모리에 load되기 때문에, 자신만의 고유한 address space를 가지게 된다. address space란 Stack, Heap, Data, Text 영역 및 PCB, Program Counter 등이 있다. Stack과 Heap의 영역은 서로 줄어들었다 늘었다를 반복한다. 각각 담당하는 내용은 이.. 2020. 4. 23.