본문 바로가기
728x90

정글 2기/OS 운영체제25

[OS운영체제] 명시적 가용 리스트(Explicit Free List) [OS운영체제] 명시적 가용 리스트(Explicit Free List) 명시적 가용 리스트(Emplicit Free List)는 할당된 블록과 가용 블록을 나타내는 헤더(Header)와 풋터(Footer)이외에 Successor와 Predecessor를 나타내는 워드를 각각 할당해줌으로써 할당 리스트들 간의 이중 연결 리스트이다. 가용 블록 끼리만 연결된 리스트 이므로, 할당된 리스트를 거치지 않아 훨씬 빠른 시간 내에 할당 블록을 찾을 수 있는 잠점이 있다. 기존 묵시적 가용 리스트 코드와 유사하다. 가용 리스트를 만들기 위해 이중포인터를 사용하였다. 또한 새로 가용(free)된 블록은 항상 가용리스트의 맨 앞에 붙였다. 이를 나타내는 포인터는 free_listp 이다. 코드 1. 매크로(중요) 하위 .. 2021. 9. 16.
[OS운영체제] 묵시적 가용 리스트(Implicit Free List) [OS운영체제] 묵시적 가용 리스트(Implicit Free List) 묵시적 가용 리스트(Implicit Free List)는 할당된 블록과 가용 블록을 헤더(Header)와 풋터(Footer)라는 워드에 저장함으로써 간단히 구분하는 방식이다. 동적 메모리 할당 malloc함수를 malloc lab을 통해 직접 C언어로 구현해 보았다. 함수 구현에는 묵시적 가용 리스트(Implicit Free List), 명시적 할당 리스트(Explicit Free List), 분리 가용 리스트(Segregated Free List)가 있다. 먼저 묵시적 할당 리스트를 이용한 malloc 함수를 구현해 보았다. 코드 1. 매크로 및 기본 코드 1 word를 4byte로 하고, 2 word를 기본 alignment로 한.. 2021. 9. 15.
[Operating System 운영체제] Memory Management [Operating System 운영체제] Memory Management 메모리 관리(Main memory) 메모리 계층구조 Block : 보조기억장치와 주기억장치 사이의 데이터 전송 단위 - 1~4KB Word : 주기억장치와 레지스터 사이의 데이터 전송 단위 - 16~64bits (CPU 64비트가 이것의 의미와 거의 동일) Address Binding - 프로그램의 논리 주소를 실제 메모리의 물리 주소로 매핑하는 작업 - Binding 시점에 따른 구분 Compile time binding - 메모리에 적재될 위치를 컴파일러가 앎 Load time binding - 메모리에 적재될 위치를 컴파일러가 모름 Run time binding - 수행할 때 address binding. 대부분의 OS가 사.. 2021. 9. 12.
[Operating System 운영체제] Virtual Memory(가상 메모리) [Operating System 운영체제] Virtual Memory(가상 메모리) Non-Continuous allocation Virtual Storagy(Memory) - Physical or RAM memory + swap memory - Non-continuous allocation - 사용자 프로그램을 여러 개의 block으로 분할 - 실행 시, 필요한 block들만 메모리에 적재, 나머지는 swap device(가상 메모리)에 존재 - 기법들 Paging system Segmentation system Hybrid paging/segmentation system Address Mapping - Relative address(상대주소) : 프로그램의 시작 주소를 0으로 가정한 주소 - Relo.. 2021. 9. 10.
[Operating System 운영체제] Computer System Overview 02 [Operating System 운영체제] Computer System Overview 02 운영체제의 역할 1. 운영체제의 역할 1) User Interface(편리성) CUI(Character user interface) GUI(Graphical User interface) EUCI(End-User Comfortable Interface) - 특수목적. ex) MP3 플레이어용 UI 2) Resource management(효율성) HW resource(processor, memory, I/O devices, Etc.) SW resource(file, application, message, signal, Etc.) 3) Process(실행 주체) and Thread(가벼운 프로세스) managemen.. 2021. 8. 31.
[Operating System 운영체제] Computer System Overview 01-1 Cache [Operating System 운영체제] Computer System Overview 01-1 Cache 1. 캐시(Cache) - 128KB 정도로 작음 1) 프로세서(CPU) 내부에 있는 메모리 (L1, L2 캐시 등) - 속도가 빠르고 가격이 비쌈, 레지스터보다 Core에서 멀리 떨어져있다. 멀리 떨어져 있을수록 사이즈는 커지고 속도는 느려진다고 생각하면 된다. 2) 메인 메모리의 입출력 병목현상 해소 - CPU와 메인메모리 간의 속도차가 여전히 존재. 2. 캐시의 동작 - 일반적으로 HW적으로 관리 됨 캐시 히트(Cache hit) : 필요한 데이터 블록이 캐시에 존재 캐시 미스(Cache miss) : 필요한 데이터 블록이 캐시에 없는 경우. 캐시가 메인 메모리까지 접근해 데이터를 캐시로 가져.. 2021. 8. 31.
728x90