운영체제(15)
-
가상 메모리
가상메모리는 실제 메모리 주소가 아닌 가상의 메모리 주소를 주는 방법이다. 메인 메모리보다 더 큰 저장 공간을 제공할 수 있다. 사용자와 논리적 주소를 물리적으로 분리하여 사용자가 메인 메모리 용량알 초과한 프로세스에 주소를 지정헤서 메모리를 제한 없이 사용할 수 있도록 하는 개념이다. 활둉 영역을 메인 메모리에 유지하면서 필요할 때는 메모리 사이에 스로세스 코드와 데이터를 저장한다. 메모리 내에 스왑 인/아웃을 거쳐 프로세스를 제할당하는 것이 특징이다. 어떻게 이런 방식으로 메모리를 관리할 수 있을까? 바로 아래 이유에 있다. - 실제로는 모든 프로그램이 항상 동시에 실행하지 않음 - 예외 처리 코드는 자주 필요하지 않고, 안쓸수도 있음 - 배열, 리스트 등은 사용 크기보다 항상 더 크게 정의함 - 문..
2023.11.25 -
메모리 관리
메모리 관리는 프로세스들을 위해 메모리를 할당하고 제거하며 보호하는 활동이다. 또한 디스크에 있는 프로그램을 실행하기 위해 메모리에 적재한 후 메모리 관리자가 예약된 메모리를 할당해주는 역할을 한다. 여러 프로세스가 메모리에 상주할 수 있도록 운영체제가 동적으로 메모리를 세분화하는 역할도 한다. 메모리 정책 적재정책 디스크에서 메모리로 프로세스를 반입하는 시기를 결정한다. 프로세스가 요청을 할 떄 적재하는 방식(요구 적재)와 시스템이 요청을 미리 예층해서 매모리에 적재(예상 적재)하는 방식이 있다. 배치정책 디스크에서 반입한 프로세스를 메모리 어느 위치에 저장할 것인지 결정하는 방식이다. 충분히 큰 첫 공백에 적재하는 최초적합, 가장 작은 크기 공간에 적재하는 최적 적합, 가장 큰 공간에 적재하는 최악 ..
2023.11.24 -
스케줄링 알고리즘
1. FIFO 가장 단순하다! 프로세서를 요청하는 순서대로 할당해준다. 비선점 방법이다. 딱봐도 성능이 안좋아보인다 좀 더 자세히 말하면 호위효과가 발생할 여지가 있다 호위효과 : 긴 프로세스가 실행하는 동안 짧은 프로세스가 길게 대기하는 현상 2. SJF (Shortest Job First) 각 작업 중에서 실행 시간이 가장 짧은 프로세스에 할당하는 방법이다. 평균 대기 시간이 가장 짧지만, 긴 작업은 기아 상태가 발생할 수 있다. SJF에서 선점이 가능한 알고리즘을 SRTF(Shortest Remaining time first) 스케줄링이라고 한다. 3. 우선순위 스케줄링 프로세스 중에 우선순위가 가장 높은 프로세스를 할당하는 스케줄링이다. 우선순위 별로 실행 큐를 다르게 설정한다. 우선순위는 제한 ..
2023.11.24 -
프로세스 스케줄링이란
스케줄링이란? 여러 프로세스가 번갈아 사용하는 자원을 어떤 시점에 어떤 프로세스에게 할당할지 결정하는 것이다. 스케줄링 방법에 따라 시스템 성능에 영향을 미친다. 스케줄렁의 목적은 다음과 같다. - 자원 할당의 공정성 보장 - 단위시간 당 처리량 최대화 - 적절한 반환시간 보장 - 오버헤드 최소화 - 실행 대기 방지(실행 무기한 연기 방지) - 우선순위 부여 스케줄링의 기준 요소는 어떻게 될까? 이를 알기 위해 프로세스의 실행 시간을 좀 더 구체적으로 살펴보자. 프로세스를 프로세서에서 실행할 때를 프로세서 버스트라고 하며, 입출력 버스트는 프로세스가 추가로 실행하려고 입출력을 기다리고 있을 때이다. 프로세스의 실행 형태는 아래 그림과 같이 순환 형태로 구성된다. 프로세서 버스트는 입출력 대기시간에 따라 ..
2023.11.18 -
교착 상태와 기아 상태
교착상태란? 프로세스가 결코 일어나지 않을 사건을 기다리는 상태를 말한다. 교착 상태는 시스템 자원에 요구가 뒤엉킨 상태로, 두 프로세스가 사용하는 자원(비공유)를 서로 기다리고 있을 때 발생한다. 즉, 둘 이상의 프로세스가 다른 프로세스가 점유하고 있는 자원을 기다릴 때 발생한다. 교착 상태 발생 조건 교착상태는 다음 4 가지 조건을 모두 만족해야 발생한다. 1. 상호 배제 : 자원을 최소 하나 이상 비공유 해야 한다. 즉, 한 번에 한 프로세스만 사용 가능하다. 2. 점유와 대기. 자원을 최소 하나는 보유하고 있고, 그러한 자원을 얻으려고 대기하는 프로세스가 있어야 한다. 3. 비선점 : 자원을 선점할 수 없다. 즉, 자원을 강제로 빼앗을 수 없다 4. 순환 대기 : 자원을 서로 각각 얻으려 대기하는..
2023.11.11 -
병행 프로세스와 상호배제
병행 프로세스란? 운영체제가 프로세스를 빠르게 전환해서 프로세서 시간을 나눠서(시분할해서) 마치 프로세스 여러 개를 동시에 실행하는 것 처럼 보이게 하는 것을 말한다. 병행 프로세스는 독립 프로세스와 협력 프로세스로 구분한다. 독립 프로세스는 단일 처리 시스템에서 수행하는 방법으로, 다른 프로세스에 영향을 주고받지 않으면서(데이터를 주고받지 않으면서) 독립적으로 실행하는 것을 말한다. 협력 프로세스는 다른 프로세스에 영향을 주고받으며, 즉 상호작용하며 특정 기능을 수행하는 비동기적 프로세스이다. 당연히 서로 자원을 공유하기 때문에 충돌이 발생한다. 근데 또 이런 자원들은 프로세스에 영향을 받음 안되기 때문에 다음 세가지 형태로 상호작용한다. 1. 프로세스는 서로 인식하지 못하는 경쟁 관계를 유지한다. O..
2023.11.11