
운영체제란 무엇인가? : 컴퓨터 하드웨어 바로 위에 설치되는 소프트웨어 계층 일반적으로 컴퓨터는 위의 그림과 같은 구조를 가진다. 운영체제는 소프트웨어와 하드웨어 사이에 존재하는데 그로 인해 하드웨어와 어떻게 상호작용할지? 사용자 소프트웨어와 어떻게 상호작용할지? 2가지의 관점을 가지고 동작하게 된다. 운영체제는 컴퓨터 시스템을 편리하게 사용할 수 ...

프로세스란 : 실행 중인 프로그램 흔히 pc를 사용할 때 라는 말을 많이 들어봤을 것이다. 는 현재 pc에서 실행 중인 프로그램으로 현대의 컴퓨터에서는 많은 들이 실행되고 있다. 프로세스 context : 프로세스의 현재 상태를 나타내는데 필요한 모든 요소 일반적으로 프로세스의 현재 상태를 나타내기 위해서는 많은 정보들이 필요하다. 현재 pro...

프로세스 관리 프로세스 생성 하나의 프로세스는 여러 자식을 생성할 수 있다. 이때 일반적으로 복제 생성 방식으로 자식이 생성된다. 복제 생성 방식이란 부모 프로세스의 주소공간을 자식이 그대로 복사한다는 것을 의미한다. 이런 구조로 인해 프로세스는 트리 구조를 형성하게 된다. 일반적으로 프로세스가 직접 자식을 생성하는 것이 아니라 시스템 콜을 통해 운영체...

CPU 스케줄링 : 어떤 프로세스 에게 cpu를 할당할지 결정하는 것 일반적으로 모든 프로그램은 cpu burst와 i/o burst를 반복하면서 실행이 된다. 프로그램의 종류에 따라서 burst가 빈번할 수도 있고 빈번하지 않을 수도 있는데 주로 사람과 상호작용하는 프로그램의 경우 burst가 빈번하고 과학적인 계산을 하는 프로그램의 경우 burst의...

Race Condition : 여러 프로세스들이 동시에 동일한 데이터 접근할 때 접근 순서나 타이밍에 따라 결과값이 달라지는 현상 일반적으로 컴퓨터 시스템의 데이터 접근 방식은 데이터가 저장된 곳에서 데이터를 읽어와 연산을 진행한 이후 그 결과를 다시 해당 위치에 저장하는 방식으로 진행이 하는 여러 instruction 과정을 거치게 된다. 이 때 데...

Deadlock : 일련의 프로세스들이 서로가 가진 자원을 기다리며 무한정 대기하는 상태 프로세스 A가 a라는 자원을 가지고 있고 b라는 자원이 필요한 상황이라 가정해보자. 이 때 프로세스 B가 b라는 자원을 현재 가지고 있고 B도 a자원으로 요청하게 된다면 두 프로세스 중 누군가가 자원을 반환하지 않는 이상 두 프로세스는 모두 무한정 대기하게 된다....