안녕하세요. 저번 시간에 이어서 오늘은 Page Replacement로 인해 발생하는 문제점인 Thrashing 현상에 대해 공부해보도록 하겠습니다. 그럼 바로 시작하겠습니다! Thrashing Thrashing 현상의 정의를 바로 설명하지 않고 Thrashing 현상이 일어난 원인들을 하나하나 이야기하면서 설명해보도록 하겠습니다. 가상 메모리 기법의 구현 원리는 그때그때 필요한 부분만을 메모리에 올려 실행하는 것이고 당장 실행에 필요하지 않는 부분은 디스크에 보관하는 것입니다. 메모리에 올라간 부분들은 Page Table에 표시가 되며 각각은 할당받은 Frame에 올라가게 됩니다. 하지만 만일 현재 실행 시점에서 필요한 부분이 메모리상에 존재하지 않고 디스크에 존재하며 여유 Frame이 없다면 디스크에..
안녕하세요! 정말 간만의 글이네요! 시험기간이다 뭐다 해서 정신이 없어서 이제야 밀린 포스팅을 작성하게 되었습니다. 저번 포스팅에서 언급했듯이 이번 포스팅에서는 개선된 LRU 알고리즘을 비롯하여 나머지 Page Replacement 알고리즘들을 살펴보는 시간을 갖도록 하겠습니다. 또한 프로세스들에게 Frame을 할당하는 방법도 공부해보도록 하겠습니다. LRU-Approximation 알고리즘 LRU-Approximation 알고리즘은 기존의 LRU 알고리즘과 다르게 H/W의 지원 없이 Reference-Bit를 이용하여 구현하는 알고리즘 기법입니다. 이러한 개선된 LRU-Approximation 알고리즘에도 여러 가지 방법이 존재하는데요! 하나하나 간단히 살펴보도록 하겠습니다. 1. Additional-..
안녕하세요! 저번 포스팅까지는 메모리에 관한 포스팅이었다면, 오늘부터는 운영체제에서 중요한 부분인 가상 메모리 (Virtual Memory)에 관한 포스팅을 해보도록 하겠습니다. 전체적인 흐름은 가상 메모리를 관리하는 기법 중 하나인 Demand Paging을 공부하고 이 기법에 사용되는 알고리즘인 Page Replacement Schemes에 관해 공부를 합니다. 마지막으로 이러한 가상 메모리를 사용함으로써 발생할 문제점 중 하나인 Thrashing에 관해 알아보도록 하겠습니다. 그럼 바로 시작해보겠습니다. 가상 메모리 (Virtual Memory) 지금까지 배운 메모리 관리에서는 하나의 프로그램 전체를 실제 메모리에 올리는 방식을 사용했으나, 가상 메모리를 사용한다면 당장 실행에 필요한 부분만 실제 ..
안녕하세요. 저번 포스팅에서는 비연속적인 할당 기법 중 하나인 페이징에 대해서 알아보았는데요! 오늘은 비슷한 듯 다른 기법인 세그멘테이션(Segmentation)에 대해 알아보도록 하겠습니다. 그럼 바로 시작하도록 하겠습니다. Segmentation Paging 기법은 Logical address를 Page 단위로, Physical address를 같은 크기인 Frame 단위로 나누어 올리고 접근하였습니다. 그리고 Page가 어떤 Frame에 해당하는지에 대한 정보를 담는 Page Table이 존재하였습니다. Segmentation도 원리는 크게 다르지 않은데요! 차이점은 바로 Segmentation은 모두 고정된 크기가 아닌 일련의 논리적 구조 단위로 나누어진다는 뜻입니다. 이렇게 논리적인 단위로 나누..
안녕하세요. 굉장히 오래간만에 하는 포스팅인데요! 사실 조금 게을렀던 것도 있지만 운영체제 2차 시험이 있었기 때문에 따로 포스팅하기 양이 애매해서 조금 미뤄둔 것도 있습니다! 오늘은 저번 시간에 이어서 Page table의 구조의 종류와 각 구조에 대해서 공부해보도록 하겠습니다. 그럼 바로 시작하겠습니다! Page Table의 구조에는 크게 세 가지가 있는데요. 하나하나 살펴보도록 하겠습니다! 1. Hierarchical Paging (계층적 구조) 기본 Page table 구조는 Logical address를 하나의 테이블에 담았다면, 계층적 구조는 그 Logical address를 다시 여러 테이블로 나눈 구조를 말합니다. 예시로는 두 table로 구성한 Two-level Page table 구조입..
안녕하세요. 저번 포스팅에서는 운영체제의 메모리 관리에 들어가기 전 알아야 할 메모리 주소에 관한 설명들과 관련 용어들을 살펴보는 시간을 가졌는데요. 오늘은 본격적으로 운영체제가 메모리를 관리해주는 역할 중 하나인 메모리 할당에 관해 알아보도록 하겠습니다. 그럼 바로 시작해보도록 하겠습니다. 기본적으로 프로세스가 작업을 수행하려면 메모리에 올라가는 과정, 즉 운영체제에 의한 메모리 할당이 주어져야 합니다. 우리가 살펴볼 할당 방법은 3가지인데, 이 3 가지가 어떤 방법이며 문제점이 무엇이고 그 문제점을 해결하기 위해 어떤 방법이 나왔는지를 생각하면서 공부하시면 더욱 도움이 될 것입니다. 1. Continuous Memory Allocation - 연속 할당 말 그대로 연속된 공간의 메모리를 프로세스에게 ..
안녕하세요. 오늘은 운영체제에서 중요한 역할인 메모리 관리에 대해 알아보도록 하겠습니다. 메모리 관리 부분에서는 숫자가 많이 등장하여 굉장히 힘들었지만 최대한 쉽게 설명해보도록 하겠습니다. 메모리 굉장히 중요한 이슈이므로 제 포스팅뿐만 아니라 여러 서적들을 찾아보며 공부하시는 것을 추천합니다. 그럼 바로 시작해보도록 하겠습니다. 메모리 관리에 대해 들어가기 전 반드시 알아야 할 것이 있습니다. 첫 번째는 운영체제는 각 프로세스들이 메모리에 올라왔을 때 다른 프로세스의 메모리 공간을 접근하는 것을 막아야 합니다. 이것이 운영체제의 메모리 관리에 있어서 굉장히 중요한 역할인데요. 이를 위해서는 메모리에서 프로세스의 시작 위치를 저장하는 Base register와 프로세스에게 할당된 메모리의 크기인 Limit..
안녕하세요. 중간고사라서 포스팅이 상당히 미루어졌는데요...!! 6주차 수업에서는 5주차 복습과 간단히 Deadlock detection algorithm과 복구 방법에 대해서 배웠습니다. 그리하여 다행히 포스팅이 미뤄져도 6주차와 7주차를 포스팅하는 데는 크게 문제가 없을 것 같습니다! 그리고 6주차는 상당히 짧은 포스팅이 될 것 같은데요! 이 짧은 글을 이해하시려면 반드시 저번 주차 포스팅을 한번 보고 오시는 게 상당한 도움이 되실 것입니다. 그럼 바로 시작하겠습니다. 저번 포스팅에서는 Deadlock Avoidance, Prevention에 대해 알아보았는데요! 위의 방법들은 Deadlock을 안 일어나게끔 하는 방법들이라면 지금부터 알아볼 Deadlock detection은 Deadlock이 발생..
- Total
- Today
- Yesterday
- Swift
- Operating System
- Codable
- UIControl
- 아이폰
- 오토레이아웃
- UIResponder
- IOS
- 프로토콜
- storyboard
- boostcourse
- notificationcenter
- auto layout
- nodejs
- TableView
- 알고리즘
- Xcode
- edwith
- Algorithm
- 테이블뷰
- 클로저
- 운영체제
- 백준
- 스위프트
- iPhone
- CRUD
- oauth2.0
- Protocol
- 부스트코스
- segue
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |