CS/OS

CS/OS

[OS] 가상 메모리와 요구 페이징

가상 메모리(Virtual Memory) 메인 메모리의 크기는 한정되어 있다. 따라서 물리적이 메모리 크기보다 크기가 큰 프로세스는 실행시킬 수 없게 되는데 예를 들어 메인 메모리 크기가 100MB일 때 300MB 크기의 프로세스는 실행시킬 수 없다. 크기가 큰 프로세스를 실행시키기 위해서는 메인 메모리를 크게 키우는 방법이 있겠지만, 이것은 굉장히 비효율적이다. 따라서 나온 방법이 바로 가상 메모리(Virtual Memory)이다. 가상 메모리는 메모리 관리 기법의 하나로 매우 큰 메모리인 것처럼 보이게 만드는 것을 말한다. 즉 , 프로그램에 실제 메모리 주소가 아닌 가상의 메모리 주소를 주는 방식이다. 가상적으로 주어진 주소를 가상 주소(Virtual Address) 혹은 논리 주소(Logical A..

CS/OS

[OS] 메모리 단편화 (Memory Fragmentation)

메모리 단편화 주기억장치는 CPU가 직접 접근하여 처리할 수 있는 고속의 기억장치 (Memory)로, 현재 수행되는 프로그램과 데이터를 저장하고 있는데 종류로는 ROM과 RAM이 있다. 이 주기억장치에서 메모리 공간이 작은 조각으로 나뉘어져 사용가능한 메모리가 충분히 존재하지만 할당이 불가능한 상태를 메모리 단편화가 발생했다고 한다. 그리고, 이 메모리 단편화는 내부 단편화와 외부 단편화로 구분할 수 있다. 내부 단편화 (Internal Fragmentation) 메모리를 할당할 때, 프로세스가 필요로 하는 크기보다 더 큰 메모리가 할당되어 프로세스에서 사용하는 메모리 공간이 낭비되는 상황 예를 들어, 메모장을 실행시키는데 OS가 4kb를 할당해줬다고 하자. 그런데 실제로는 1kb만큼만 사용하면 3kb만..

CS/OS

[OS] Race Condition (세마포어, 뮤텍스)

Race Condition ? Race Condition이란 두 개 이상의 프로세스가 공통 자원을 병행적으로(Concurrently) 읽거나 쓰는 동작을 할 때, 공용 데이터에 대한 접근이 어떤 순서에 따라 이루어졌는지에 따라 그 실행 결과가 같지 않고 달라지는 상황을 말한다. Race의 뜻 그대로 간단히 말하면 경쟁하는 상태, 즉 두 개의 스레드가 하나의 자원을 놓고 서로 사용하려고 경쟁하는 상황을 이야기한다. 경쟁 프로세스의 경우, 세 가지 제어 문제에 직면한다. Mutual exclusion , Deadlock , Starvation 이다. 📌 Mutual Exclusion Race condition을 막기 위해서는 두 개 이상의 프로세스가 공용 데이터에 동시에 접근을 하는 것을 막아야 한다. 즉,..

CS/OS

[OS] 데드락 (Deadlock , 교착 상태)

데드락(Deadlock, 교착 상태)란 ? 운영체제에서 데드락(교착상태)이란, 시스템 자원에 대한 요구가 뒤엉킨 상태로 둘 이상의 프로세스가 다른 프로세스가 점유하고 있는 자원을 서로 기다릴 때 무한대기에 빠지는 상황을 말한다. 데드락 발생 조건 상호 배제(Mutual Exclusion) : 한 번에 프로세스 하나만 해당 자원을 사용할 수 있다. 점유 대기(Hold and Wait) : 자원을 최소한 하나 보유하고, 다른 프로세스에 할당된 자원을 점유하기 위해 대기하는 프로세스가 존재해야 한다. 비선점(Non-Preemption) : 이미 할당된 자원을 강제로 빼앗을 수 없다. 순환 대기(Circular Wait) : 대기 프로세스의 집합이 순환 형태로 자원을 대기하고 있어야 한다. 데드락 해결 방법 데..

엥재
'CS/OS' 카테고리의 글 목록