안녕하세요. 이번 글에서는 지난 글에서 다루지 못했던 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) 프로세스에서 중요..
안녕하세요. 저번 시간에는 운영체제의 정의와 역할, Interrupt란 무엇인가 그리고 컴퓨터에서의 Hardware에 대해서 간략하게 살펴보았는데요 오늘은 운영체제의 구조와 동작원리에 대해서 간략하게 알아보는 시간을 갖도록 하겠습니다. 운영체제의 구조 일단 운영체제의 구조가 어떻게 발전되어갔는지를 보면서 알아보도록 하겠습니다. 예전 DOS 시절 운영체제에서는 자원의 효율성이 굉장히 떨어졌었는데요. 그 이유를 살펴보도록 하겠습니다. 예전에는 메모리에 여러 가지 작업들이 올라가지 못하였습니다. 예를 들어 수행해야 할 작업-1과 작업-2가 있다고 생각해봅시다. 작업-1은 CPU를 사용한 후 I/O 장치를 사용하고, 작업-2는 CPU만을 사용하는 작업이라고 예를 들어 보겠습니다. 작업-1이 먼저 수행이 되면서 ..
- Total
- Today
- Yesterday
- Xcode
- 프로토콜
- oauth2.0
- Codable
- UIResponder
- UIControl
- TableView
- Operating System
- Protocol
- boostcourse
- Algorithm
- IOS
- edwith
- nodejs
- 스위프트
- CRUD
- 테이블뷰
- storyboard
- Swift
- 클로저
- 오토레이아웃
- segue
- 부스트코스
- iPhone
- auto layout
- 아이폰
- 알고리즘
- 백준
- notificationcenter
- 운영체제
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |