Memory Management : 세그먼테이션
·
💻 Operating System
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..
Blocking,Non-blocking & Synchronous,Asynchronous
·
💻 Operating System
동기와 블록킹, 비동기와 논블록킹의 작동 매커니즘이 더 직관적이기 때문에 많은 사람들이 이 개념들을 같은 것 혹은 비슷한 것으로 오해하고 있는데, 방금 이야기 했듯이 이 두가지 개념은 서로 전혀 다른 곳에 초점을 맞춘 개념들이므로 서로 직접적인 관련은 거의 없다고 봐도 된다. 단지 조합하여 사용되는 것 뿐이다. 출처 동기와 비동기 Synchronous, Asynchronous 호출되는 함수의 작업 완료 여부를 누가 신경쓰는가에 따라 다르다. 동기/비동기는 작업을 수행하는 주체가 두 개 이상이어야 한다. 이 때 작업의 시간(시작, 종료 등)을 서로 맞춘다면 이를 동기라고 부르고, 서로 작업의 시간이 관계없다면 이를 비동기라고 부른다. 동기 Synchronous 호출하는 함수가 호출되는 함수의 작업 완료 후..
Memory Management : 페이징
·
💻 Operating System
페이징 Paging 불연속 할당 방식의 하나 프로그램을 구성하는 가상 주소 공간을 같은 크기의 페이지로 분할합니다. 페이지 단위로 물리적인 메모리에 올려두거나 Backing storege에 내려놓거나 합니다. 물리적인 메모리의 공간을 페이징 프레임 paging frame이라고 부릅니다. 균일한 크기로 잘려있기 때문에 hole의 크기가 각각 달라서 생기는 문제점은 없습니다. 반면 주소 변환은 굉장히 복잡해 집니다. 더이상 하나의 프로세스가 연속된 주소를 가진다는 보장이 없기 때문입니다. 페이징의 메소드 물리적 메모리를 동일한 크기의 frame으로 나눕니다. 논리적 메모리를 동일한 크기의 page로 나눕니다. 이 때, frame과 page의 크기는 같습니다. 모든 가용 frame들을 관리합니다. page t..
Memory Management : 연속 할당 방식
·
💻 Operating System
연속 할당 방식 고정분할 방식 Fixed partition allocation 물리적 메모리를 몇 개의 영구적 분할로 나눕니다. 분할의 크기가 모두 동일한 방식도 있고 서로 다른 방식도 있습니다. 분할 하나의 공간에 하나의 프로그램을 적재합니다. 융통성이 없습니다. 동시에 메모리에 load되는 프로그램의 총 수가 제한됩니다. 최대 수행 가능한 프로그램의 크기도 제한됩니다. Internal fragmentation 이나 External fragmentation이 발생할 수 있습니다. 😗 외부 단편화, 내부 단편화는 무엇일까? 둘 다 메모리가 낭비되는 상황을 말한다. 외부 단편화 External fragmentation - 프로그램 크기보다 분할의 크기가 작은 경우 - 아무 프로그램에도 배정되지 않은 빈 곳..
Memory management : 물리적 메모리 할당 방법 Allocation of Physical Memory
·
💻 Operating System
메모리의 두 영역 OS 상주 영역 낮은 주소 영역 인터럽트 벡터interrupt vector 와 함께 사용 사용자 프로세스 영역 높은 주소 영역 사용자 프로세스 영역의 할당 방법 연속 할당 Contiguous allocation 각 프로세스가 메모리의 연속적인 공간에 적재되는 방법 고정분할 방식 Fixed partition allocation 가변분할 방식 Variable partition allocation 불연속 할당 Noncontiguous allocation 하나의 프로세스가 메모리 여러 영역에 분산되어 적재되는 방법 현대 시스템에서 사용한다. Paging ⭐️ Segmentation Paged Segmentation
Memory management : Dynamic Loading / Overlays / Swapping / Linking
·
💻 Operating System
메모리 관리 용어를 먼저 정리해봅시다. 동적 적재 Dynamic Loading 프로세스 전체를 메모리에 미리 다 올리는 것이 아니라 해당 루틴이 불려질 때 메모리에 load 하는 것을 뜻합니다. 메모리 효용성이 향상됩니다. 가끔씩 사용되는 많은 양의 코드의 경우 유용하게 사용됩니다. 모든 코드가 자주 사용되지는 않습니다. 예를 들어 오류 처리 루틴의 경우 미리 통째로 메모리에 올려놓는 것은 비효율적입니다. 원래 Dynamic Loading이라는 말은 운영체제의 특별한 지원 없이 프로그램 자체에서 구현하는 것을 뜻합니다. OS의 경우 라이브러리를 통해 지원 가능하므로 일일히 개발자가 만들지는 않습니다. 페이징과 다른 말이지만, 최근은 페이징과 섞어쓰기도 합니다. 오버레이 Overlays 메모리에 실제 필요..