CS지식(3)
-
[면접] Dining philosophers
철학자 5명이 원형 식탁에 둘러앉아 생각에 빠지다가, 배고플 땐 밥을 먹는다. 그들의 양쪽엔 각각 젓가락 한 짝씩 놓여있고, 밥을 먹으려 할 땐 다음의 과정을 따른다. 1. 왼쪽 젓가락부터 집어든다. 다른 철학자가 이미 왼쪽 젓가락을 쓰고 있다면 그가 내려놓을 때까지 생각하며 대기한다. 2. 왼쪽을 들었으면 오른쪽 젓가락을 든다. 들 수 없다면 1번과 마찬가지로 들 수 있을 때까지 생각하며 대기한다. 3. 두 젓가락을 모두 들었다면 일정 시간동안 식사를 한다. 4. 식사를 마쳤으면 오른쪽 젓가락을 내려놓고, 그 다음 왼쪽 젓가락을 내려놓는다. 5. 다시 생각하다가 배고프면 1번으로 돌아간다. 프로그래밍으로 만들었을 때 발생할 수 있는 문제점이 무엇일까? 만약 모든 철학자가 동시에 배가 고파서 왼쪽 젓가락..
2021.12.01 -
[면접] 메모리 단편화 ( Memory Fragment )
메모리 단편화란? 메모리 단편화란 메모리의 공간이 작게 나뉘어져 사용 가능한 메모리가 충분하지만 할당이 불가능한 상태를 메모리 단편화라고 지칭한다. 메모리 단편화에는 크게 '내부 단편화'와 '외부 단편화' 가 있다. 내부 단편화 내부 단편화란 메모리를 할당할 때 프로세스가 필요한 양보다 더 큰 메모리를 할당해서 프로세스에서 사용하는 메모리 공간이 낭비되는 상황이다. 외부 단편화 외부 단편화란 메모리가 할당되고 해제되는 작업이 반복될 때 작은 메모리가 중간중간 존재하게 된다. 이 때 중간중간에 생긴 사용하지 않는 메모리가 많이 존재해서 총 메모리 공간은 충분하지만 실제로 할당할 수 없는 상황 해결방법 페이징 기법 ( 외부 단편화 해결 / 내부 단편화 존재 ) 보조기억장치를 이용..
2021.11.23 -
[면접] 교착 상태 ( Dead Lock )
교착 상태란? 운영체제에서 데드락(교착상태)이란, 시스템 자원에 대한 요구가 뒤엉킨 상태입니다. 즉, 둘 이상의 프로세스가 다른 프로세스가 점유하고 있는 자원을 서로 기다릴 때 무한 대기에 빠지는 상황을 일컫습니다. 교착 상태 발생조건 데드락이 발생하기 위한 조건은 크게 4가지로 말할 수 있습니다. 상호 배제 한 번에 프로세스 하나만 해당 자원을 사용할 수 있다. 사용 중인 자원을 다른 프로세스가 사용하려면 요청한 자원이 해제될 때까지 기다려야 한다. 점유 대기 자원을 최소한 하나 보유하고, 다른 프로세스에 할당된 자원을 점유하기 위해 대기하는 프로세스가 존재해야 한다. 비선점 이미 할당된 자원을 강제로 빼앗을 수 없다(비선점). 순환 대기 대기 프로세스의 집합이 순환 형태로 자원을 대기하고 있어야 한다..
2021.11.23