[운영체제] 페이지 교체 알고리즘
CS/운영체제2022. 7. 7. 15:14[운영체제] 페이지 교체 알고리즘

Page reference string 페이지 교체 알고리즘을 살펴보기 전에 Page reference string이라는 용어를 알아야 한다. CPU가 내는 주소는 이진수 단위이지만, 페이지 교체 알고리즘을 계산하기 위해서는 이진수 주소 단위가 아닌 페이지 단위로 계산해야한다. CPU 논리 주소 요청할 페이지 번호 100 1 101 1 432 4 612 6 103 1 104 1 611 6 612 6 예를 들어, CPU가 내는 주소를 위와 같이 표현해보자. 편의를 위해 주소는 십진수로 표현했다. 만약 페이지 크기를 100이라 하면, 우측과 같이 된다. 주소 100번지는 1번 페이지에서 offset이 0인 위치이고, 101은 1번 페이지의 offset 1인 위치라고 볼 수 있다. 마지막으로 페이지 번호로 나..

[운영체제] 내부 단편화 vs 외부 단편화
CS/운영체제2022. 7. 7. 14:08[운영체제] 내부 단편화 vs 외부 단편화

고정 분할 기법을 사용하면 내부 단편화가 발생하고 동적 분할 기법을 사용하면 외부 단편화가 발생하는 이유는 무엇일까 ? 내부 단편화와 외부 단편화의 원인 프로세스가 수행되기 위해서는 프로세스가 주기억장치, 즉 메인 메모리에 적재되어야 하는데 이 과정에서 프로세스는 일정 크기의 메모리를 요청한다. 이 때 요청한 크기보다 큰 메인 메모리의 파티션을 할당해 주었을 때 내부 단편화가 발생한다. 일반적으로 고정 분할 기법은 한 파티션에 하나의 프로세스만 적재될 수 있는데 위와 같은 상황에서는 프로세스보다 큰 파티션을 할당해 주었기 때문에 남는 메모리가 생긴다. 남는 메모리라 하더라도 한 파티션에는 하나의 프로세스만 들어갈 수 있기 때문에 그 남은 메모리는 사용할 수가 없다. 이 내부 단편화를 보완하기 위해 나온 ..

[운영체제] 페이징과 세그멘테이션
CS/운영체제2022. 7. 7. 12:17[운영체제] 페이징과 세그멘테이션

메모리 개념 메인 메모리(Main Memory, Physical Memory, 주기억장치) 메인 메모리란 CPU가 직접 접근할 수 있는 기억 장치로, 프로세스가 실행되려면 프로그램 코드를 메인 메모리에 적재해두어야 한다. 이때, 프로그램 용량이 메인 메모리보다 크다면 어떻게 될까 ? 가상 메모리(Virtual Memory) 실제 물리 메모리 개념과 사용자의 논리 메모리 개념을 분리한 것이다. Memory 공간은 한정적이므로 사용자에게 더 많은 Memory를 제공하기 위해 가상 주소를 사용한다. MMU를 통해 논리 주소, 물리 주소를 나누어 사용하며 CPU의 메모리를 관리한다. MMU란 ? Memory Management Unit로 가상 주소를 실제 메모리 주소로 변환해주는 장치 가상 주소 공간 - 하나의..

[운영체제] 세마포어(Semaphore) & 뮤텍스(Mutex)
CS/운영체제2022. 4. 4. 21:23[운영체제] 세마포어(Semaphore) & 뮤텍스(Mutex)

✔︎ 임계 영역 (Critical Section) 여러 프로세스가 데이터를 공유하면서 수행될 때 각 프로세스에서 공유 자원에 접근하는 프로그램의 코드 부분을 의미한다. 프로세스 간에 공유자원을 접근하는데 있어 문제가 발생하지 않도록 공유 자원의 독점을 보장해줘야 하는 영역이다. 멀티 프로그래밍 시스템에서 여러 프로세스들이 공유하고 있는 자원을 한 시점에 하나의 프로세스만 접근할 수 있게 하는 영역이다. ✔︎ 임계 영역의 문제점 1. 경쟁 상태의 발생 공유 자원(임계 자원)에 여러 프로세스가 동시에 접근을 시도할 때 접근의 타이밍이나 순서 등이 결괏값에 영향을 줄 수 있는 경쟁 상태가 발생할 수 있다. 2. 자원의 독점 문제 임계 영역 내에서는 작업을 반드시 빠른 속도로 수행해야 하며 프로세스 하나가 임계..

CS/운영체제2022. 4. 4. 16:10[운영체제] 경쟁 상태(Race Condition)

✔︎ 경쟁 상태(Race Condition)란 ? 공유 자원에 대해 여러 프로세스가 동시에 접근할 때 결과값에 영향을 줄 수 있는 상태 동시 접근 시 자료의 일관성을 해치는 결과가 나타날 수 있다. 경쟁 상태도 교착 상태의 종류 중에 하나이다. ✔︎ Race Condition이 발생하는 경우 1. 커널 작업을 수행하는 중에 인터럽트 발생 문제점 : 커널 모드에서 데이터를 로드해 작업을 수행하다가 인터럽트가 발생해 같은 데이터를 조작하는 경우 해결법 : 커널모드에서 작업을 수행하는 동안 인터럽트를 disable 시켜 CPU 제어권을 가져가지 못하도록 한다. 2. 프로세스가 'System Call'을 하여 커널 모드로 진입하고 작업을 수행하는 도중 문맥 교환이 발생할 때 문제점 : 프로세스1이 커널모드에서 ..

[운영체제] DeadLock (데드락)
CS/운영체제2022. 4. 4. 15:35[운영체제] DeadLock (데드락)

✔︎ DeadLock (데드락)이란 ? 프로세스가 원하는 자원을 얻지 못해 다음 작업 처리를 하지 못하는 상태를 말한다. '교착 상태'라고 부르며 시스템적으로 한정된 자원을 여러 곳에서 사용하려고 할 때 발생한다. 발생 상황 멀티 프로그래밍 환경에서 한정된 자원을 사용하기 위해 서로 경쟁하는 상황에서 발생 가능 어떤 프로세스가 자원을 요청했을 때에 그 자원을 사용할 수 없는 상황이 발생할 수 있다. 이 때, 프로세스가 대기 상태로 들어가게 된다. 대기 상태로 들어간 프로세스들이 실행 상태로 변경될 수 없을 때 '교착 상태' 발생 ✔︎ DeadLock 발생 조건 발생 조건 4가지가 모두 성립해야 데드락이 발생하며 하나라도 성립하지 않으면 해결 가능하다. 1. 상호 배제 (Mutual exclusion) 자..

image