안녕하세요 Pingu입니다. 지난 글에서는 메모리를 고정 크기로 할당하여 사용하는 paging기법을 사용할 때 발생하는 문제점 중 paging 방법이 주소 변환을 위해 메모리에 접근하기 때문에 속도가 느린 점을 보완하기 위한 방법인 Translate Lookaside Buffer(TLB)에 대해 알아봤었습니다. 하지만 paging에는 속도가 느린 점 외에도 page table을 위한 메모리 공간을 많이 차지하는 것도 문제였었죠! 그래서 이번 글에서는 page table에 사용되는 메모리 공간을 줄이는 방법에 대해 알아보려고 합니다. 제가 공부할 때 참고하고 있는 OSTEP책에서는 Chapter 20 - Advanced Page Table 부분입니다! Paging: Smaller Tables Page ta..
안녕하세요 Pingu입니다~ 지난 글에서는 가변 크기로 메모리를 할당하여 사용할 때 발생하는 external fragmentation(외부 단편화)와 이를 최소화하기 위한 방법들, 여유 공간을 관리하는 방법에 대해 알아봤습니다. 이번 글에서는 가변 크기로 메모리를 사용하는 것이 아닌 고정 크기로 메모리를 사용하는 방법인 paging 방법에 대해 알아보려고 합니다. 제가 공부할 때 참고하고 있는 OSTEP 책에서는 Chapter 18 - Paging: Introduction 부분입니다! Paging: Introduction 메모리 공간을 관리하는 방법은 두 가지가 있습니다. 하나는 지금까지 알아본 segmentation을 사용한 가변 크기를 사용하는 방법이었습니다. 하지만 메모리 할당을 가변 크기로 할당 ..
안녕하세요 Pingu입니다! 저번 글에서는 메모리 가상화를 위한 주소 변환 방법 중 Segmentation을 사용하는 방법을 알아봤었는데요, segmentation은 메모리를 가변 크기로 할당하여 사용하는 방법으로 이를 사용하면 고려해야 하는 문제 중 메모리의 여유 공간을 어떻게 관리할지에 대한 문제와 external fragmentation(외부 단편화)문제가 있었습니다. 그래서 이번 글에서는 여유 공간 관리 방법과 단편화 문제에 대해 알아보려고 합니다. 제가 공부할 때 참고하고 있는 OSTEP 책에서는 Chapter 17 - Free Space Management 부분입니다! Free-Space Management 이번 글에서는 아까 말한 대로 메모리의 여유 공관 관리와 메모리 공간의 관리 시스템에 ..
안녕하세요 Pingu입니다!🐧 지난 글에서는 메모리 가상화를 하기 위해 base, limit 레지스터를 사용하여 가상 주소를 실제 메모리의 주소로 변환하는 주소변환에 대해 알아봤었습니다. 이러한 방법을 Dynamic relocation(동적 재배치)라고 했으며 글의 마지막 부분에 이 방법은 heap과 stack 사이의 사용하지 않는 공간도 할당하기 때문에 비효율적이라고 했었습니다. 이러한 점을 보완하기 위해서 이번 글에서는 Segmentation이라는 개념을 도입한 메모리 가상화 방법에 대해 알아보려고 합니다. 또한 이를 통해 저번 글에서 가정한 가정들도 제거할 수 있습니다! 이번 글은 제가 참고하고 있는 OSTEP책에서는 Chapter 16 - Segmentation입니다. Segmentation (분..
안녕하세요 Pingu입니다. 지난 글에서 간단하게 메모리 가상화에 대해 알아보았는데요, 이번 글에서는 메모리를 사용하기 위한 Memory API들을 살펴보려고 합니다. 제가 공부할 때 참고하고 있는 OSTEP 책에서는 Chapter 14 - Memory API부분 입니다. Interlude: Memory API 이번 글에서는 UNIX 시스템에서 메모리 할당 인터페이스에 대해 알아보겠습니다! 제공되는 인터페이스는 몇 개 없기 때문에 빠르게 알아보겠습니다. 우선 이번 글에서 알아볼 인터페이스로 처리할 문제는 메모리 할당 및 관리 방법입니다. 또한 이러한 인터페이스를 사용할 때 실수할 수 있는 부분에 대해서도 알아보겠습니다. Types of Memory 실행할 때 메모리의 상태에 대해 기억하시나요? 기억이 나..
안녕하세요 Pingu입니다! 이번 글에서는 멀티 프로세서에서 스케줄링하는 방법에 대해 알아보겠습니다. 제가 공부할 때 참고하고 있는 OSTEP 책에선 Chapter 10 - Multi-CPU Scheduling 부분입니다. 이번에 다룰 부분은 나중에 배울 Concurrency(동시성)을 공부 한 뒤에 보는 것이 가장 좋다고 하네요. 나중에 동시성을 공부한 뒤에 다시 보도록 해야겠습니다.Multiprocessor Scheduling (Advanced)요즘 나오는 CPU에 멀티 코어, 쿼드 코어, 헥사 코어 등을 광고하는 것을 보신 적이 있으신가요? 이렇게 요즘엔 멀티 프로세서 시스템이 보편화되고 있습니다. 이러한 CPU에서는 어떻게 스케줄링을 해서 사용해야 할까요?? 하나 이상의 CPU가 있으면 지금까지는..
안녕하세요 Pingu입니다! 저번 글에서 알아본 MLFQ 스케줄링 방법에 이어 이번 글에서는 스케줄러가 작업들에게 공평하게 CPU를 사용할 수 있도록 스케줄링하는 방법에 대해 알아보겠습니다. 제가 공부할 때 참고하고 있는 OSTEP 책에선 Chapter 9 - Lottery Scheduling 부분입니다. Scheduling: Proportional Share 이번 글에서는 아까 말한 대로 proportional share (비례 지분) 스케줄러에 대해 알아보겠습니다. 지금까지 알아본 FIFO, SJF, STCF, RR, MLFQ에서 고려하던 Turnaround time, Response time을 잠깐 뒤로하고 스케줄러의 또 하나의 비교 기준인 fairness(형평성)을 중점적으로 볼 계획입니다. 형평..
안녕하세요 Pingu입니다! 이번 글에서는 운영체제에서 Process라고 불리는 것에 대해 알아보려고 합니다. 제가 공부할 때 참고하고 있는 OSTEP 책에선 Chapter 4 - Processes 부분입니다. Process란? Process(프로세스)가 무엇일까요? 프로세스는 간단하게 말하면 현재 실행 중인 프로그램이라고 할 수 있습니다. 그렇다면 프로그램은 무엇일까요? 프로그램은 Disk에 저장되어있는 실행 가능한 것이라고 볼 수 있습니다. 컴퓨터는 이러한 프로그램을 메모리에 Load 하고 이를 CPU에서 처리합니다. 이러한 동작들이 잘 수행될 수 있도록 OS는 어떤 일을 어떤 방법으로 수행 중인지 알아보도록 하겠습니다. Multiple processes - 여러개의 프로세스를 동시에 동작시키는 방법..
- Total
- Today
- Yesterday
- Publisher
- OS
- 문법
- 앱개발
- OSTEP
- BFS
- 아이폰
- pattern
- mac
- 스위프트
- Apple
- operating
- 자료구조
- IOS
- System
- Swift
- 코딩테스트
- Xcode
- Combine
- 알고리즘
- 프로그래밍
- 코테
- operator
- design
- DP
- 백준
- 동시성
- 테이블뷰
- dfs
- document
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |