안녕하세요. 이번 글에서는 지난 글에서 다루지 못했던 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 과정을 거치지 않아도 되기 때문에..
안녕하세요. 오늘은 저번 시간에서 마저 언급하지 못한 프로세스(Process)와 스레드(Thread)에 관해 포스팅을 해보도록 하겠습니다. 많이 언급되는 주제이고 그만큼 중요한 주제이므로 조금은 긴 글이 되고 학생인 저로서는 약간 부족하거나 완벽하지 못한 부분이 있을 수 있습니다. 이 점 양해 부탁드리고 혹시 잘못된 정보나 더 좋은 표현이 있다면 피드백 부탁드립니다! 그러면 바로 시작해보도록 하겠습니다 프로세스 프로세스란? 간단히 메모리에 올라와 있는 프로그램들 중 현재 실행 중인 프로그램을 말합니다. 간단한 분류로 I/O 작업이 많은 프로세스라면 I/O-bound Process CPU 작업이 많으면 CPU-bound Process라고도 합니다 프로세스 상태 (Process State) 프로세스에서 중요..
안녕하세요. 이번 주는 운영체제 강의 2주차 수업이었습니다. 2주차에는 어떤 것을 배웠는지 알아보고 각각에 대해서 포스팅하는 시간을 갖도록 하겠습니다. 일단 이번 주에는 운영체제의 전체적인 흐름을 파악하는 마지막 단계인 운영체제의 디자인 패턴에 대해서 배웠고, 운영체제 관한 글이나 얘기를 들었을 때 가장 많이 언급되던 프로세스(Process)와 스레드(Thread)을 배웠습니다. 그럼 두 번에 걸쳐 하나하나씩 정리해보고 공부해보는 시간을 갖도록 하겠습니다. 첫 번째로는 운영체제의 디자인 패턴 (Design Pattern)에 관해서 알아보도록 하겠습니다. 디자인 패턴이란 운영체제의 내부 구조나 동작 방식이 어떤 방식으로 어떻게 구성되어 있는지를 말하고 그것을 운영체제가 발전해 오는 과정에서 패턴이 어떻게 ..
- Total
- Today
- Yesterday
- 클로저
- 스위프트
- 운영체제
- segue
- 백준
- IOS
- nodejs
- TableView
- 부스트코스
- Codable
- 아이폰
- Xcode
- UIControl
- iPhone
- 테이블뷰
- auto layout
- Algorithm
- 프로토콜
- edwith
- 알고리즘
- oauth2.0
- storyboard
- notificationcenter
- 오토레이아웃
- UIResponder
- Swift
- Protocol
- CRUD
- boostcourse
- Operating System
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |