본문 바로가기
728x90

Lecture/OS31

가상 메모리 컴퓨터마다 물리 메모리, 즉 실제 메모리의 크기가 다르다. 가상 메모리 virtual memory는 크기가 다른 물리 메모리에서 일관되게 프로세스를 실행할 수 있는 기술이다. 가상 메모리 시스템 현대 메모리 관리의 가장 큰 특징은 물리 메모리의 크기와 프로세스가 올라갈 때 메모리의 위치를 신경 쓰지 않고 프로그래밍하도록 지원한다는 것이다. 이것을 가능하게 하는 메모리 시스템을 가상 메모리라고 부른다. 가상 메모리의 크기와 주소 이론적으로 가상 메모리의 크기는 무한대다. 그러나 실제로 가상 메모리의 최대 크기는 컴퓨터 시스템이 가진 물리 메모리의 최대 크기로 한정되며, CPU에 따라 결정된다. 그런데 가상 메모리는 어떻게 실제 사용할 수 있는 물리 메모리의 크기를 넘어서 무한대로 메모리를 사용하게 할까? .. 2023. 11. 9.
단일 프로그래밍 환경의 메모리 할당 메모리 오버레이 실제 메모리보다 큰 프로그램을 작동하게 하려면 프로그램의 크기가 실제메모리(물리 메모리) 보다 클 때 전체 프로그램을 메모리에 가져오는 대신 적당한 크기로 잘라서 가져오는 기법을 메모리 오버레이(memory overlay) 라고 한다. overlay는 '겹겹이 쌓다', '중첩시키다'라는 뜻으로, 메모리 오버레이는 하나의 메모리에 여러 프로그램을 겹겹이 쌓아놓고 실행하는 것을 말한다. 다시 말해 한정된 메모리에서 메모리보다 큰 프로그램을 실행할 수 있다. 그리고 프로그램 전체가 아니라 일부만 메모리에 올라와도 실행할 수 있다. 프로그램은 개념적으로 한 덩어리지만 일부분만으로도 실행할 수 있다. 스왑 메모리에 모듈B를 가져올 때 먼저 메모리에 올라온 모듈 A를 어딘가에 보관해야 한다. 쉽게 .. 2023. 11. 8.
메모리 관리의 개요 폰 노이만 구조에서 메모리는 유일한 작업 공간이며 모든 프로그램은 메모리에 올라와야 실행할 수 있다. 모든 프로그램은 하드디스크나 SSD와 같은 보조 저장장치에 보관되어 있다. 메모리 이해하기 메모리 구조는 1바이트(B) 크기로 나뉜다. 1B로 나뉜 각 영역은 주소 address로 구분되는데 0번지부터 시작한다. CPU는 메모리에 있는 데이터를 가져오거나 작업 결과를 메모리에 저장하기 위해 주소를 사용한다. 예를 들어 메모리 24번지의 데이터를 CPU로 가져오거나 CPU안에서 생성된 데이터를 메모리의 39번지에 저장한다. 주소는 CPU와 메모리 간 작업의 기준이 된다. 메모리 관리의 이중성 메모리 관리는 운영체제를 비롯해 여러 작업을 동시에 처리할 때 메모리를 어떻게 관리하는가에 관한 문제다. 이처럼 복.. 2023. 11. 7.
교착 상태 해결 방법 교착 상태 해결 교착상태를 해결하는 방법은 예방, 회피, 검출이며, 추가적으로 교착 상태가 발견된 후에 자원을 회복하는 방법도 있다. 교착 상태 예방 prevention 교착 상태를 유발하는 네 가지 조건이 발생하지 않도록 무력화하는 방식이다. 교착 생태는 상호배제, 비선점, 점유와 대기, 원형 대기라는 네 가지 조건을 동시에 충족해야 발생하기 때문에 이 중 하나라도 막는다면 교착 상태가 발생하지 않는다. 그러나 이 방법은 실효성이 적어 잘 사용되지 않는다. 교착 상태 회피 avoidance 자원 할당량을 조절하여 교착 상태를 해결하는 방식이다. 자원을 할당하다가 교착 상태를 유발할 가능성이 있다고 판단되면 자원 할당을 중단하고 지켜보는 것이다. 그러나 자원을 얼마만큼 할당해야 교착 상태가 발생하지 않는.. 2023. 11. 6.
교착 상태의 개요 교착 상태의 정의 2개 이상의 작업이 동시에 이루어지는 경우, 다른 작업이 끝나기만 기다리며 작업을 더 이상 진행하지 못하는 상태를 교착 상태 deadlock라고 한다. 교착상태는 아사 현상starvation과 비슷해 보이지만 차이가 있다. 아사 현상은 잘못된 정책으로 인해 프로세스 작업이 지연되는 문제인 반면, 교착 상태는 여러 프로세스가 작업을 진행하다 보니 발생하는 자연적인 현상이다. 자원 할당 그래프 자원 할당 그래프 resource allocation graph는 프로세스가 어떤 자원을 사용 중이고 어떤 자원을 기다리고 있는지를 방향성이 있는 그래프 directional graph로 표현한 것이다. 자원 할당 그래프에서 프로세스는 원으로, 자원은 사각형으로 표현한다. 자원을 사용하는 경우(할당된.. 2023. 10. 31.
공유 자원과 임계구역 공유 자원에 대한 접근 공유 자원 shared resource은 여러 프로세스가 공동으로 이용하는 변수, 메모리, 파일 등을 말한다. 공유 자원은 공동으로 이용되기 때문에 누가 언제 데이터를 읽거나 쓰느냐에 따라 그 결과가 달라질 수 있다. 따라서 프로세스들의 공유 자원 접근 순서를 정하여 예상치 못한 문제가 발생하지 않도록 해야 한다. 2개 이상의 프로세스가 공유 자원을 병행해서 읽거나 쓰는 상황을 경쟁 조건이 발생했다고 한다. 경쟁 조건이 발생하면 공유 자원 접근 순서에 따라 실행 결과가 달라질 수 있다. 임계 구역 공유 자원 접근 순서에 따라 실행 결과가 달라지는 프로그램의 영역을 임계구역이라고 한다. 예를 들어 주방에서 가스레인지는 공유 할 수 있는 자원이다. 가스레인지는 보통 3~4개의 화구가 .. 2023. 10. 21.
728x90