CS/운영체제(10)
-
페이지 교체 알고리즘과 프레임 할당
https://ukgi-dev.tistory.com/179 가상 메모리와 페이징운영체제의 가장 핵심적인 역할은 프로세스 관리와 메모리 관리이다.OS는 가상 메모리를 활용해서 메모리 관리를 어떻게 할까?스와핑가상 메모리는 실행하고자 하는 프로그램을 일부만 메모리ukgi-dev.tistory.com위의 포스팅에서 페이징의 개념과 페이지 테이블을 통해 어떻게 프레임으로 할당되는지 정리해보았다.가상 메모리를 사용하는 이유는 작은 물리 메모리보다 큰 프로세스를 실행하기 위함이라고 했다. 그럼에도 물리 메모리의 크기는 한정되어 있다. 따라서 OS는 기존에 메모리에 적재된 불필요한 페이지를 선별하여 스왑 아웃해야하고, 프로세스에게 적절한 갯수의 프레임을 할당해서 페이지를 할당할 수 있어야한다. 이번 포스팅에서는 OS..
2024.05.16 -
가상 메모리와 페이징
운영체제의 가장 핵심적인 역할은 프로세스 관리와 메모리 관리이다.OS는 가상 메모리를 활용해서 메모리 관리를 어떻게 할까?스와핑가상 메모리는 실행하고자 하는 프로그램을 일부만 메모리에 적재하여 실제 물리 메모리 크기보다 더 큰 프로세스를 실행할 수 있게 하는 기술이다. 가상 메모리는 모든 데이터를 주 기억장치에 올리지 않고 필요한 부분만 올린다. 그리고 남은 것들은 보조기억장치에 존재하게 되며 필요할 때마다 보조기억장치에서 주기억장치로 옮겨서 사용한다. 예를 들어 입출력 작업의 요구로 대기 상태가 된 프로세스, 오랫동안 사용하지 않은 프로세스는 임시로 보조기억장치 일부 영역으로 옮겨진다. 이렇게 되면 주기억장치에 빈 공간이 생기고 이 공간에 새로운 프로세스를 담아 실행할 수 있다. 이런 방식을 스와핑이라..
2024.05.15 -
교착 상태와 해결 방법에 대한 이론
🚀교착상태란?식사하는 철학자 문제가 있다.철학자들은 두 포크를 모두 들어야 식사를 할 수 있다. 식사를 할 수 있는 순서는 왼쪽 포크가 사용가능하면 왼쪽 포크를 들고, 오른쪽 포크가 사용가능하면 오른쪽 포크를 든다. 그리고 모두 포크를 들었다면 식사를 하고 식사를 마쳤다면 오른쪽 포크부터 내려놓는다. 이 과정을 계속 반복하면 된다. 결론부터 말하면 모든 철학자가 왼쪽 포크를 드는 순간, 모든 철학자는 오른쪽 포크를 들 수 없기 때문에 아무도 식사를 하지 못하는 상황이 발생한다. 이것이 교착상태이다. 컴퓨터 공학에서 교착상태는 다음과 같이 설명할 수 있다.프로세스 P1이 자원 R2를 할당받아 사용하고 있고, 프로세스 P2는 자원 R1을 할당받아 사용하고 있다.그런데 P1은 자원 R1의 사용이 끝나기를 ..
2024.05.15 -
프로세스 동기화
동기화란동기화는 특정 자원에 접근할 때 한 개의 프로세스만 접근하게 하거나, 프로세스를 올바른 순서대로 실행하게 하는 것을 의미한다.프로세스를 올바른 순서대로 실행하는 것을 실행 순서 제어를 위한 동기화라고 하고, 동시에 접근해서는 안되는 자원에 하나의 프로세스만 접근하도록 하는 것을 상호 배제를 위한 동기화라고 한다. 실행 순서 제어를 위한 동기화Book.txt라는 파일이 있다. Writer 프로세스는 텍스트 파일에 데이터를 저장하는 프로세스이고, Reader 프로세스는 데이터를 읽어오는 프로세스이다. 순서가 보장되지 않는다면 데이터를 저장하는 Writer 프로세스가 실행되기 전에 Reader 프로세스가 실행되어 올바른 저장값을 읽어오지 못할 수 있다. 상호 배제를 위한 동기화#include #incl..
2024.05.07 -
CPU 스케줄링 알고리즘
스케줄링 알고리즘의 종류비선점형 스케줄링한 프로세스가 CPU를 할당받으면 작업 종료 후 CPU 자원을 반환할 때까지 다른 프로세스는 CPU 점유가 불가능한 스케줄링 방식을 의미한다. 즉, 하나의 프로세스가 CPU 자원을 독점할 수 있다.모든 프로세스에 대한 요구를 공정하게 처리할 수 있지만, 짧은 작업을 수행하는 프로세스가 긴 작업 종료 시까지 대기해야하는 콘베이 현상이 발생할 수 있다.처리 시간의 편차가 적은 특정 프로세스 환경에서 용이하다.선입 선처리 스케줄링(FCFS 스케줄링)FCFS 스케줄링은 First Come First Served Scheduling의 약자로 먼저 온 곳이 먼저 제공받는다는 의미이다.단순히 준비 큐에 삽입된 순서대로 프로세스들을 처리하는 비선점형 스케줄링 방식이다. FCFS는..
2024.05.02 -
CPU 스케줄링 개요
프로세스 우선순위운영체제가 프로세스들에게 공정하고 합리적으로 CPU 자원을 배분하는 것을 CPU 스케줄링이라고 한다.프로세스마다 CPU를 할당받을 수 있는 우선순위가 존재하게 된다. 우선순위가 높은 프로세스는 입출력 작업이 많은 프로세스가 있다. 왜 입출력 작업이 많은 프로세스를 우선순위를 높게 매겨 먼저 CPU를 할당받도록 할까? 워드 프로세서를 생각해보자. 워드 프로세서는 CPU를 사용하여 명령어를 실행하고, 사용자로부터 입력받은 내용을 보조기억장치에 저장하고, CPU를 사용하여 다시 명령어를 실행하고, 입력한 내용을 화면에 출력하는 과정이 반복된다. CPU를 이용하는 작업은 CPU 버스트이고, 입출력 장치를 기다리는 작업을 입출력 버스트라고 한다.CPU 버스트가 많은 프로세스를 CPU 집중 프로세스..
2024.05.02