안녕하세요. 오늘은 운영체제에서 중요한 역할인 메모리 관리에 대해 알아보도록 하겠습니다. 메모리 관리 부분에서는 숫자가 많이 등장하여 굉장히 힘들었지만 최대한 쉽게 설명해보도록 하겠습니다. 메모리 굉장히 중요한 이슈이므로 제 포스팅뿐만 아니라 여러 서적들을 찾아보며 공부하시는 것을 추천합니다. 그럼 바로 시작해보도록 하겠습니다. 메모리 관리에 대해 들어가기 전 반드시 알아야 할 것이 있습니다. 첫 번째는 운영체제는 각 프로세스들이 메모리에 올라왔을 때 다른 프로세스의 메모리 공간을 접근하는 것을 막아야 합니다. 이것이 운영체제의 메모리 관리에 있어서 굉장히 중요한 역할인데요. 이를 위해서는 메모리에서 프로세스의 시작 위치를 저장하는 Base register와 프로세스에게 할당된 메모리의 크기인 Limit..
안녕하세요. 중간고사라서 포스팅이 상당히 미루어졌는데요...!! 6주차 수업에서는 5주차 복습과 간단히 Deadlock detection algorithm과 복구 방법에 대해서 배웠습니다. 그리하여 다행히 포스팅이 미뤄져도 6주차와 7주차를 포스팅하는 데는 크게 문제가 없을 것 같습니다! 그리고 6주차는 상당히 짧은 포스팅이 될 것 같은데요! 이 짧은 글을 이해하시려면 반드시 저번 주차 포스팅을 한번 보고 오시는 게 상당한 도움이 되실 것입니다. 그럼 바로 시작하겠습니다. 저번 포스팅에서는 Deadlock Avoidance, Prevention에 대해 알아보았는데요! 위의 방법들은 Deadlock을 안 일어나게끔 하는 방법들이라면 지금부터 알아볼 Deadlock detection은 Deadlock이 발생..
안녕하세요. 이번 글에서는 지난 글에서 다루지 못했던 Deadlock을 다루는 방법, 예방하고 해결하는 방법에 대해 알아보도록 하겠습니다. 그럼 바로 시작해보겠습니다. Methods of Handling Deadlocks Deadlock을 다루는 방법에는 크게 세 가지가 있습니다. 첫째, Deadlock 현상 자체를 미연에 방지하는 방법 말 그대로 애초에 Deadlock이 발생하지 않도록 하는 방법입니다. -Deadlock prevention, Deadlock Avoidance 둘째, Deadlock 상태를 허용하면서 그것을 복구하는 방법 현재 상태를 주기적으로 체크하면서 Deadlock 상태인지를 확인하며 Deadlock에 빠지면 복구를 하는 방법입니다. -Deadlock Detection Algori..
안녕하세요. 저번 포스팅까지가 1차 중간고사의 범위였고 시험을 치렀습니다! 하지만 성적은... 물론 교수님이 어렵게 내셔서 70점을 넘는 학생이 한 명 밖에 없기는 하지만... 그래도 아쉬움이 많이 남는 시험이었습니다. 다음 시험은 더 잘 보기 위해 다시 포스팅을 시작해보도록 하겠습니다. 오늘은 앞에서 언급했던 Deaklock 상태에 대해 더욱 자세히 다뤄보도록 하겠습니다. 그럼 바로 시작하도록 하겠습니다. Deaklock Deaklock 이란 프로세스 P1이 자원 A를 갖고 있으면서 B를 필요로 하고 프로세스 P2는 자원 B를 갖고 있으면서 자원 A를 필요로 하는 상황에서 두 프로세스 모두 더 이상 진행이 되지 않는 상황을 말합니다. Deadlock에 관해 설명하고 해결법을 설명하기 위해 System ..
안녕하세요. 이번 포스팅이 1차 중간고사까지의 범위로 결정이 됐습니다! 저번 주까지는 스케줄링의 방법들에 대해서 공부를 해보았는데요 이 강의에서 우리는 프로세스에서 살펴보았는데 이때 여러 프로세스가 동시에 공유 메모리에 접근을 하게 될 때 충돌이라는 문제가 발생한다는 것을 배웠습니다. 오늘은 바로 그 충돌의 해결방안들에 대해서 살펴보도록 하겠습니다. 충돌은 동시에 다른 프로세스가 하나의 메모리에 접근을 하여 값이 원하는 대로 나오지 않는 현상인데요. 쉽게 와 닿지 않으실 수 있으실 테니까 간단히 코드를 보며 설명을 해보도록 하겠습니다. 위의 코드를 대략적으로 설명하자면 Producer 프로세스가 buffer를 통해 Consumer 프로세스에게 작업을 하나씩 넘겨주고 Producer는 넘겨주었으니 buff..
안녕하세요. 시간이 지날수록 각종 팀프로젝트와 과제들로 인해 업로드가 점점 늦어지고 있네요...! 그래도 최대한 다음 수업 시간 전까지는 포스팅하기 위해 이렇게 글을 쓰려 노트북 앞에 앉았습니다. 이번 주에는 운영체제의 중요한 기능, 역할 중 하나인 CPU 스케쥴링 (CPU Scheduling)에 관해 포스팅 해보도록 하겠습니다. 그럼 바로 시작하겠습니다. 앞에 포스팅 해놓은 내용들을 다시 생각해보면 운영체제의 역할은 컴퓨터를 보다 효율적으로 사용하게 해주는 중요한 역할을 하고 있습니다. 여기서 효율적이라하면 자원을 최대한 바쁘게 활용하는 것을 말하는데요. 그 중의 하나가 바로 MultiProgramming 기법이었고 거기에 time quantum의 개념을 도입한 것이 MultiTasking 기법이었습니..
안녕하세요. 오늘은 2주차의 마지막 주제인 스레드(Thread)에 관해 포스팅해보도록 하겠습니다. 그럼 바로 시작하도록 하겠습니다. Thread란? Thread란 CPU를 구성하는 기본단위입니다. Thread ID, Program counter, register set 및 stack으로 구성되어 있습니다. Thread를 사용함으로써 오는 장점에는 크게 네 가지가 존재합니다. 1. 사용자의 입력에 빠른 반응을 보여줍니다. 2. 여러 Thread들이 하나의 Process 안에 속하면서 자원을 공유합니다. 그러므로 Process 간의 자원에서 사용되었던 Shared Memory 같이 추가적인 공유 메모리 공간을 만들지 않아도 되고 운영체제를 거치는 Message Passing 과정을 거치지 않아도 되기 때문에..
- Total
- Today
- Yesterday
- 프로토콜
- Algorithm
- 오토레이아웃
- 테이블뷰
- UIResponder
- edwith
- boostcourse
- storyboard
- 스위프트
- 백준
- Operating System
- IOS
- 운영체제
- UIControl
- Xcode
- 아이폰
- Protocol
- 알고리즘
- CRUD
- 부스트코스
- auto layout
- Swift
- segue
- notificationcenter
- Codable
- 클로저
- nodejs
- TableView
- iPhone
- oauth2.0
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |