CS & Network/운영체제(OS) & 컴퓨터구조

[운영체제(OS)] 데드락(DeadLock), 교착상태 해결방법 -2

저번 시간에는 데드락이 무엇인지, 데드락이 왜 발생하는지, 데드락이 발생하기 위해서는 어떤 조건들이 갖춰져야 하는지에 대해 살펴봤습니다. 이번 시간에는 데드락이 발생했을 때 해결할 수 있는 방법들을 알아보려고 합니다. 0. 데드락 처리 방법 데드락 처리 방법은 약 3가지로 분류할 수 있습니다. 1. Ignore - 무시하자 말 그대로 다 무시해!입니다. 운영체제가 데드락을 전혀 신경 쓰지 않는 방법이죠. 따라서 개발자가 프로그램을 개발할 때 데드락이 걸릴 가능성을 하나부터 열까지 다 신경 써서 차단해야 하죠. 2. Deadlock Prevention - 데드락이 절대 발생하지 않게 해야지! 말 그대로 데드락이 발생될 가능성을 아예 예방하자!라는 의미입니다. 어떻게 예방할까요? 바로 데드락이 발생될 가능..

2022.01.16 게시됨

자료구조 & 알고리즘/백준(Baekjoon)

[백준]5430(파이썬) - AC

https://www.acmicpc.net/problem/5430 5430번: AC 각 테스트 케이스에 대해서, 입력으로 주어진 정수 배열에 함수를 수행한 결과를 출력한다. 만약, 에러가 발생한 경우에는 error를 출력한다. www.acmicpc.net 이 문제는 간단하지만 어떻게 시간을 줄일 거냐? 를 묻는 문제입니다. 저 같은 경우에는 일단 구현을 해놓고 짜 놓은 코드에서 어떻게 시간을 줄일지 생각을 합니다. 사람마다 맞는 방식을 찾는 게 중요한 것 같습니다. 구현은 어렵지 않았습니다. 최대한 for문을 안 쓰고 while과 deque를 사용해서 구현했고, 이 문제에서는 리스트 형식의 문자열을 입력값으로 받기 때문에 파싱을 해서 숫자가 들어있는 문자열로 바꾸는 부분이 중요했다고 생각합니다. 주요 구..

2022.01.14 게시됨

CS & Network/운영체제(OS) & 컴퓨터구조

[운영체제(OS)] 데드락(DeadLock), 교착상태 란? - 1

저번 포스팅에서는 동기화 이슈, 임계 구역(critical section)에 대해서 알아보고, 해결할 수 있는 방법들에서 대해서 알아보았습니다. 이번 시간에는 동기화 이슈처럼 비슷하게 공유 자원이 한정되어 있을 경우, 이 자원을 사용하고 싶은 프로세스들이 여러 개 있을 때 발생하게 되는 교착 상태, 데드락(Dead lock)에 대해서 정리해보려고 합니다. 0. 데드락(Dead lock), 교착 상태란? 교착 상태를 직관적으로 이해해보면 위 사진처럼 자동차 여러 대가 혼잡한 상황에서 먼저 가겠다고 양보하지 않고 직진만 하고 있는 상황이라고 할 수 있습니다. 생각만 해도 아찔하죠. 그렇다면 정의를 한번 볼까요? In an operating system, a deadlock occurs when a proce..

2022.01.14 게시됨

자료구조 & 알고리즘/백준(Baekjoon)

[백준]9019(파이썬) - DSLR

https://www.acmicpc.net/problem/9019 9019번: DSLR 네 개의 명령어 D, S, L, R 을 이용하는 간단한 계산기가 있다. 이 계산기에는 레지스터가 하나 있는데, 이 레지스터에는 0 이상 10,000 미만의 십진수를 저장할 수 있다. 각 명령어는 이 레지스터에 www.acmicpc.net 이 문제는 보고 처음에 든 생각은 BFS 문제구나 싶었습니다. 항상 2중 리스트에서 상하좌우를 고려해서 풀어나가는 방식의 BFS 문제를 많이 접했는데요, 익숙하지 않아서 BFS 문제라는 확신이 들기까지는 꽤 오래 걸렸죠. 이 문제에서 D, S, L, R 조건을 구현하는 건 어렵지 않았고, 이거 BFS인 거 알겠어? 를 물어보는 문제였습니다. 먼제 D, S, L, R 일 때 각각 다른 ..

2022.01.13 게시됨