본문 바로가기

운영체제

(17)
가상 메모리(virtual memory) Goal 가상 메모리가 무엇인지 설명할 수 있다. 페이징(paging), 세그멘테이션(segmentation)에 대해 설명할 수 있다. 관련 포스팅 주소 바인딩 가상 메모리(Virtual Memory)란? 실제 메모리 크기와 상관 없이 메모리를 이용할 수 있도록 가상의 메모리 주소를 사용하는 방법이다. 가상 메모리를 사용하면 다음과 같은 이점이 있다. 실제 메모리(RAM) 크기 보다 더 큰 공간을 사용할 수 있다. (보조 기억장치 공간 사용) 가상의 주소 공간을 사용하여 논리적인 연속성을 제공해준다. 물리 메모리 주소 공간을 알 필요가 없어진다. 대표적인 가상 메모리 기법으로 페이징(paging), 세그멘테이션(segmentation)이 있다. 현대 운영체제에서는 두 가지 방식이 혼용되어 사용된다. 두 ..
메모리 관리 3 - 메모리 단편화(Memory Fragmentation) Goal 내부 단편화, 외부 단편화에 대해 설명할 수 있다. 메모리 단편화 해결 방법에 어떤 것들이 있는지 설명할 수 있다. 메모리 단편화(Memory Fragmentation)란? 메모리 단편화란 메모리 공간이 비효율적으로 사용되어 저장 공간이 낭비되는 것을 말한다. 메모리 단편화로 일어날 수 있는 현상 총 메모리 공간은 충분 하지만 실제 사용이 불가능할 수 있다. 실제 사용 가능한 공간이 줄어들어 시스템 성능의 저하를 일으킬 수 있다. 실제 사용할 수 있는 공간을 찾는 과정이 필요 잦은 페이지 교체 swapping 메모리 단편화의 종류로 내부 단편화, 외부 단편화가 있다. 내부 단편화(Internal fragmentation) 할당한 영역 중 사용되지 않는 공간으로 인해 공간이 낭비되는 것을 의미한다..
메모리 관리 2 - 메모리 관리 전략 Goal 여러 메모리 관리 기법에 대해 설명할 수 있다. 운영체제는 한정된 크기의 메모리를 효율적으로 다루기 위해 다양한 방식의 메모리 관리 방법을 사용한다. 운영체제는 메모리 관리를 통해 다음과 같은 기능을 제공해준다. 여러 프로세스가 동시에 실행될 수 있도록 메모리 공간 제공 메모리 보호(리소스 보호) 공유 (메모리 공유를 통해 통신이 가능) 사용자(프로그래머)를 위한 메모리 어드레싱 방법 제공 그렇다면 어떤 메모리 관리 기법이 있는지 알아보자. 메모리 관리 정책 가져오기 정책(fetch policy) : 필요로 하는 데이터를 언제 메모리로 가져올지 결정 배치 정책(placement policy) : 가져온 데이터를 메모리 어느 위치에 올려 놓을지 결정 교체 정책(replacement policy) ..
메모리 관리 1 - 주소 바인딩 Goal 주소 종류(Logical / Physical / Symbolic address)에 대한 이해 프로그래머에 의해 작성된 코드가 어떤 과정을 거쳐 물리 메모리 주소로 매핑 되는지 그 과정을 설명할 수 있다. 주소의 종류 Logical address 프로세스마다 독립적으로 갖는 공간 논리적인 주소 체계로, 0번지를 시작으로 상대적인 주소 값을 갖는다. CPU에서 인식하는 주소 체계이다. virtual / relative / relocatable address 라고도 한다. Physical address 실제 물리적인 메모리 위치를 식별하는 주소 absolute address 라고도 한다. Symbolic address 변수나 함수와 같이 코드에서 사용하는 상징적인 이름을 주소로 사용하는 방법 => 프..
교착 상태(Dead Lock) Goal 교착 상태 발생하는 이유(조건)에 대해 설명할 수 있다. 교착 상태가 발생했을 때 해결할 수 있는 방안 몇 가지를 설명할 수 있다. 교착 상태(Dead Lock)란? 교착 상태(dead lock)란 두 개 이상의 작업(task)이 서로 상대방의 작업이 끝나기 만을 기다리고 있기 때문에 결과적으로 아무것도 완료되지 못하는 상태를 가리킨다. 교착 상태란 다중 프로그래밍 환경에서 흔히 발생할 수 있는 문제이다. 이 문제를 해결하는 일반적인 방법은 아직 없는 상태이다. 현재의 대부분의 운영 체제들은 교착 상태를 막는 것은 불가능하다. 교착 상태가 발생하면 여러 운영 체제들은 제각기 다른 비표준 방식들로 이러한 교착 상태에 대응한다. 그렇다면 교착 상태는 어떤 상황에서 발생하고 어떻게 해결해야 할까? 교..
동기화(Synchronization) Goal 동기화가 무엇이고 왜 필요한지 설명할 수 있다. 임계 구역(critical section)에 대해 설명할 수 있다. 임계 구역 문제를 해결하기 위한 동기화 방법(semapohre, monitor 등)에 대한 이해 관련 용어 공유 자원(shared resource) 임계 구역(critical section) 경쟁 상태(race condition) 상호 배제(mutual exclusion) 세마포어(semaphore), 뮤텍스(mutex), 모니터(monitor) 동기화(Synchronization)란? 시스템을 동시에 작동시키기 위해 여러 사건들을 조화시키는 것을 의미 작업들 사이의 수행 시기를 조절하여 사건이 동시에 일어나거나, 일정한간격을 두고 일어날 수 있도록 한다. 스레드(또는 프로세스) ..
스케줄링(Scheduling) Goal 스케줄링 시 어떤 것들을 고려해야 하는지 이해 스케줄링 알고리즘 평가 기준에 대한 이해 여러가지 스케줄링 기법과 그 특징에 대한 이해 스케줄링(Scheduling)이란? 컴퓨터 분야에서 스케줄링이란 컴퓨터 시스템 자원(CPU등)을 어떤 작업(task)에 할당할지 결정하는 것을 의미한다. ex) network scheduling, I/O scheduling, Job scheduling etc CPU 스케줄링 : CPU를 어떤 작업(프로세스 또는 스레드 등)에 할당할지 결정 스케줄링은 작업 단위나 관리 범위 등에 따라 구분할 수 있다. ex) 고수준 스케줄링, 중간 수준 스케줄링, 저수준 스케줄링 선점형 스케줄링과 비선점형 스케줄링 CPU를 강제로 빼앗을 수 있는지에 따라 선점(preemptive)..
스레드(Thread) Goal 스레드가 무엇인지 설명할 수 있다. 메모리 관점에서 프로세스와 스레드를 그리고 차이점을 설명할 수 있다. 멀티 스레드 사용의 장단점에 대해서 설명할 수 있다. 커널 스레드, 유저 스레드에 대한 이해 연관 포스팅 : 프로세스 스레드(Thread)란? 스레드(thread)란 프로세스 내에서 실제로 작업을 수행하는 주체를 의미한다. (실행 흐름 단위) 모든 프로세스에는 한 개(main-thread) 이상의 스레드 가 존재한다. 두 개 이상의 스레드를 가지는 프로세스를 멀티스레드 프로세스(multi-threaded process)라고 한다. 스레드는 CPU 스케줄러에 의해 처리되는 작업(task) 단위이다. 즉, 각 스레드마다 CPU를 할당받아 수행해야할 작업을 실행한다. 스레드 탄생 배경 프로세스 간..