본문 바로가기

💻 Operating System9

Memory Management : 세그먼테이션 2023.02.14 - [CS/OS] - Memory management : 물리적 메모리 할당 방법 Allocation of Physical Memory 2023.02.14 - [CS/OS] - Memory Management : 연속 할당 방식 2023.02.14 - [CS/OS] - Memory Management : 페이징 세그먼테이션 Segmentation 불연속 할당 방식의 하나 세그먼테이션은 페이징과 달리 프로세스를 물리적 단위인 페이지가 아닌 논리적 단위인 세그먼트로 분할해서 메모리에 적재하는 방식을 말한다. 분할 방식을 제외하면, 페이징과 세그멘테이션이 동일하기 때문에 매핑 테이블의 동작 방식도 동일하다. 가변 분할 다중 프로그래밍에서 이용된 방법과 동일하게 배치되며 일반적으로 최초적합F.. 2023. 2. 20.
Blocking,Non-blocking & Synchronous,Asynchronous 동기와 블록킹, 비동기와 논블록킹의 작동 매커니즘이 더 직관적이기 때문에 많은 사람들이 이 개념들을 같은 것 혹은 비슷한 것으로 오해하고 있는데, 방금 이야기 했듯이 이 두가지 개념은 서로 전혀 다른 곳에 초점을 맞춘 개념들이므로 서로 직접적인 관련은 거의 없다고 봐도 된다. 단지 조합하여 사용되는 것 뿐이다. 출처 동기와 비동기 Synchronous, Asynchronous 호출되는 함수의 작업 완료 여부를 누가 신경쓰는가에 따라 다르다. 동기/비동기는 작업을 수행하는 주체가 두 개 이상이어야 한다. 이 때 작업의 시간(시작, 종료 등)을 서로 맞춘다면 이를 동기라고 부르고, 서로 작업의 시간이 관계없다면 이를 비동기라고 부른다. 동기 Synchronous 호출하는 함수가 호출되는 함수의 작업 완료 후.. 2023. 2. 20.
Memory Management : 페이징 페이징 Paging 불연속 할당 방식의 하나 프로그램을 구성하는 가상 주소 공간을 같은 크기의 페이지로 분할합니다. 페이지 단위로 물리적인 메모리에 올려두거나 Backing storege에 내려놓거나 합니다. 물리적인 메모리의 공간을 페이징 프레임 paging frame이라고 부릅니다. 균일한 크기로 잘려있기 때문에 hole의 크기가 각각 달라서 생기는 문제점은 없습니다. 반면 주소 변환은 굉장히 복잡해 집니다. 더이상 하나의 프로세스가 연속된 주소를 가진다는 보장이 없기 때문입니다. 페이징의 메소드 물리적 메모리를 동일한 크기의 frame으로 나눕니다. 논리적 메모리를 동일한 크기의 page로 나눕니다. 이 때, frame과 page의 크기는 같습니다. 모든 가용 frame들을 관리합니다. page t.. 2023. 2. 14.
Memory Management : 연속 할당 방식 연속 할당 방식 고정분할 방식 Fixed partition allocation 물리적 메모리를 몇 개의 영구적 분할로 나눕니다. 분할의 크기가 모두 동일한 방식도 있고 서로 다른 방식도 있습니다. 분할 하나의 공간에 하나의 프로그램을 적재합니다. 융통성이 없습니다. 동시에 메모리에 load되는 프로그램의 총 수가 제한됩니다. 최대 수행 가능한 프로그램의 크기도 제한됩니다. Internal fragmentation 이나 External fragmentation이 발생할 수 있습니다. 😗 외부 단편화, 내부 단편화는 무엇일까? 둘 다 메모리가 낭비되는 상황을 말한다. 외부 단편화 External fragmentation - 프로그램 크기보다 분할의 크기가 작은 경우 - 아무 프로그램에도 배정되지 않은 빈 곳.. 2023. 2. 14.
Memory management : 물리적 메모리 할당 방법 Allocation of Physical Memory 메모리의 두 영역 OS 상주 영역 낮은 주소 영역 인터럽트 벡터interrupt vector 와 함께 사용 사용자 프로세스 영역 높은 주소 영역 사용자 프로세스 영역의 할당 방법 연속 할당 Contiguous allocation 각 프로세스가 메모리의 연속적인 공간에 적재되는 방법 고정분할 방식 Fixed partition allocation 가변분할 방식 Variable partition allocation 불연속 할당 Noncontiguous allocation 하나의 프로세스가 메모리 여러 영역에 분산되어 적재되는 방법 현대 시스템에서 사용한다. Paging ⭐️ Segmentation Paged Segmentation 2023. 2. 14.
Memory management : Dynamic Loading / Overlays / Swapping / Linking 메모리 관리 용어를 먼저 정리해봅시다. 동적 적재 Dynamic Loading 프로세스 전체를 메모리에 미리 다 올리는 것이 아니라 해당 루틴이 불려질 때 메모리에 load 하는 것을 뜻합니다. 메모리 효용성이 향상됩니다. 가끔씩 사용되는 많은 양의 코드의 경우 유용하게 사용됩니다. 모든 코드가 자주 사용되지는 않습니다. 예를 들어 오류 처리 루틴의 경우 미리 통째로 메모리에 올려놓는 것은 비효율적입니다. 원래 Dynamic Loading이라는 말은 운영체제의 특별한 지원 없이 프로그램 자체에서 구현하는 것을 뜻합니다. OS의 경우 라이브러리를 통해 지원 가능하므로 일일히 개발자가 만들지는 않습니다. 페이징과 다른 말이지만, 최근은 페이징과 섞어쓰기도 합니다. 오버레이 Overlays 메모리에 실제 필요.. 2023. 2. 6.
Memory management : 메모리 주소 할당 Address Binding 메모리 주소 프로그램을 실행시키면 그 데이터가 메인메모리를 차지하면서 실행됩니다. 정확히는 디스크 스케줄링에 의해 어떤 프로세스가 수행될 지 결정되고 그 결정된 프로세스가 메모리 레디큐에 올라가는 것입니다. 메모리 각 저장공간에는 주소가 매겨져 있습니다. OS나 프로그램은 메모리에 주소를 통해서 접근할 수 있습니다. 주소는 논리적 주소와 물리적 주소 두 가지로 나누어 생각할 수 있습니다. 논리적 주소 Logical address virtual address 라고도 합니다. 프로세스마다 독립적으로 가지는 주소 공간을 뜻합니다. 각 프로세스마다 0부터 시작합니다. CPU가 보는 주소이기도 합니다. 물리적 주소 Physical Address 메모리에 실제 올라가는 주소를 뜻합니다. 물리적인 메모리는 하나로 0.. 2023. 2. 6.
프로세스 Process is a program in excution 프로세스는 실행중인 프로그램이다. 작업Job, 테스크Task라고도 한다. 프로세스 Process 메모리에 적재되어 실행되고 있는 프로그램. 프로그램이 명령어 리스트를 가지고 디스크에 저장되어 있는 정적파일이라면, 프로세스는 이 프로그램이 실행중인 작업을 의미한다. 따라서 하나의 프로그램으로 여러 프로세스를 띄울 수 있다. 프로세스는 운영체제로부터 시스템 자원을 할당받는 단위이기도 한다. 프로그램이 실행되 어 적재될 때 Code, Data, Stack, Heap 영역을 할당받는다. 여기에 프로그램 카운터 PC를 포함하여 프로세스라고 한다. 프로세스의 문맥 context 프로세스가 현재 어떤 상태에서 수행되고 있는지 정확히 규명하기 위해 필요한 정보.. 2023. 1. 25.