프로그램에 필요한 자원을 할당하고, 올바르게 실행되도록 돕는 프로그램.특별해서 메모리의 사용자 영역이 아닌, 따로 커널 영역이라는 곳에 할당됨.운영체제는 인터넷 브라우저, 메모장 등 프로그램이 실행되면 메모리의 비어있는 공간에 배치하고, 프로그램이 종료되면 메모리에서
포그라운드 프로세스는 사용자가 볼 수 있는 공간에서 실행되는 프로세스, 백그라운드 프로세스는 사용자가 볼 수 없는 공간에서 실행되는 프로세스이다. 백그라운드 프로세스는 또 직접 사용자와 상호작용이 가능한 지의 여부에 따라 나뉘게 된다.프로세스들은 돌아가며 한정된 시간만
스레드는 프로세스를 구성하는 실행 흐름의 단위이다. 하나의 프로세스는 하나 이상의 스레드를 가질 수 있다. 예를 들어, 웹 브라우저 프로세스는 화면 출력 스레드, 입력 스레드, 검색 스레드 등 여러 스레드를 동시에 실행할 수 있다.스레드 ID, 프로그램 카운터를 비롯한
CPU 스케줄링이란? 운영체제가 프로세스들에게 공정하고 합리적으로 CPU 자원을 분배하는 것이다. 가장 공정한 스케줄링 프로세스마다, 빨리 처리해야하는 프로세스와 그렇지 않은 프로세스가 있기 때문에 각각의 우선순위에 따라 배분해야한다. 예를 들어, 입출력 작업이 많은
동시다발적으로 실행되는 프로세스(스레드)들은 서로 협력하며 영향을 주고 받는다. 이때 자원의 일관성을 보장해야 한다. 즉 프로세스의 동기화를 고려해야 함!즉 동기화란, 프로세스들의 수행 시기를 맞추는 것이다.(스레드도 동기화 대상) 동기화에는 두 가지 목적이 있다.실행
설명에 앞서 다음 예시를 확인해보자.식사하는 철학자 문제동그란 테이블 위 5명의 철학자들이 앉아있고, 철학자들 사이에는 포크가 놓여있다. 식사를 하기위해서는 2개의 포크가 필요하고, 철학자들은 다음과 같은 과정으로 행동한다.결과는 어떻게 될까?그 누구도 식사를 할 수
연속 메모리 할당 프로세스에 연속적인 메모리 공간을 할당하는 방법 스와핑 현재 사용되지 않는 프로세스들을 보조 기억장치의 일부 영역인 스왑 영역으로 쫒아내고, 그렇게 생긴 빈 공간에 새 프로세스를 적재하는 법. 지금 당장 사용하지 않는 프로세스들만을 메모리에 적재하는
저번 글에서, 연속 메모리 할당의 문제점에 대해 알아보았다.연속 메모리 할당은 외부단편화와, 실제 물리 메모리보다 큰 프로세스를 실행할 수 없다는 단점들이 있다.실행하고자 하는 프로세스의 일부만 메모리에 적재함으로써, 물리 메모리보다 훨씬 큰 프로세스를 적재할 수 있는
이전 글들을 통해 페이징을 이용해서 물리 메모리보다 큰 프로세스를 실행할 수 있다는 것을 배웠다. 그럼에도 물리 메모리의 크기는 한정되어 있다. 따라서,기존에 적재된 불필요한 페이지를 선별해 보조기억장치로 내보내기 (페이지 교체)프로세스들에게 적절한 수의 프레임 할당하
이번엔 운영체제가 파일과 디렉터리를 어떻게 관리해주는 지 알아보자.그 전에, 파일 시스템이란 파일과 디렉터리를 관리하는 운영체제 내부에 있는 시스템이다.파일과 디렉터리는 보조기억장치의 데이터 덩어리로 볼 수 있다.파일은 보조기억장치에 저장된 의미있고, 관련된 정보의 집