운영체제란?
운영체제(OS)란 무엇인가요
OS란 컴퓨터의 하드웨어를 효율적으로 관리하여 사용자가 컴퓨터를 편리하게 사용할 수 있게 해주는 프로그램입니다.
운영체제가 하는 일을 설명해주세요
운영체제가 하는 일은 컴퓨터를 사용할 수 있게 사용자에게 Interface를 제공하고 컴퓨터의 자원을 효율적으로 사용하도록 자원을 관리합니다. 대표적으로는 CPU와 Memory가 있습니다.
CPU관리는 어떻게 하나요?
먼저 CPU를 관리한다는 것은 프로세스를 관리한다는 의미 입니다. 프로세스란 실행중인 프로그램으로써 컴퓨터에는 동시에 수많은 프로세스가 실행이 되고 있는데요. 이것을 유저가 사용할 수 있게 정확하고 빠르게 처리해야합니다. 따라서 어떤 프로세스를 처리할 것인지 결정하는 프로세스를 스케쥴링 해야합니다.
프로세스 스케쥴링은 어떻게 하나요?
스케쥴링 방식은 여러개가 있는데요 First In First Out으로 먼저들어온것을 먼저 처리하는 방식 Shortest Job First로 작업 시간이 짧은 것을 먼저 처리하는 방식 RoundRobin Priority 방식 등등이 있습니다.
프로세스의 상태에 대해 설명해주세요
프로세스를 스케쥴링 하기 때문에 그에 따라 상태가 다를 수 밖에 없는데요, 먼저 실행중인 프로세스를 Running 상태에 있다고 합니다. 또한 실행을 기다리고 있는 프로세스는 Ready상태에 있다고 합니다. 또한 입출력등 특정 이벤트를 기다리고 있는 상태를 Block상태에 있다고 합니다. new exit은 생성과 종료를 뜻합니다.
프로세스 말고 쓰레드란 개념도 있는데 이것은 무엇인가요?
쓰레드란 프로세스 내부의 작업 흐름, 작업 단위 입니다. 프로세스는 최소 하나의 스레드를 갖고 있습니다. 프로세스는 실행되고 있는 프로그램이라고 하였는데요 프로세스는 code data stack heap의 메모리 공간을 할당 받습니다. 프로세스 안에서 stack만 독립적으로 새로 할당받고 나머지 code data heap은 공유하며 스레드들이 작업을 처리합니다.