운영체제 16. 결정성 문제를 어떻게 해결할까
결정성 문제를 어떻게 해결하는가? [!NOTE] 먼저, 프로세스 시스템 개념을 정의하자.{title} 프로세스의 집합과, 선행 제약들을 프로세스 시스템이라고 정의한다. 선행 제약(precedence relation)이란 프로세스의 실행 순서다. 즉, (P_{1}, P_{2}, \dots, P_{n}) 프로세스가 있을 때 선행 제약은 (P_{i}...
결정성 문제를 어떻게 해결하는가? [!NOTE] 먼저, 프로세스 시스템 개념을 정의하자.{title} 프로세스의 집합과, 선행 제약들을 프로세스 시스템이라고 정의한다. 선행 제약(precedence relation)이란 프로세스의 실행 순서다. 즉, (P_{1}, P_{2}, \dots, P_{n}) 프로세스가 있을 때 선행 제약은 (P_{i}...
상호작용하는 프로세스 사이에 발생할 수 있는 문제가 무엇인가? 서로 정보를 주고받거나, 공유 메모리를 사용하는 프로세스를 상호작용 프로세스라고 한다. 상호작용 프로세스 사이에는 네가지 이슈가 존재한다. determinacy (결정성) : 프로세스들이 실행 속도에 상관 없이 항상 같은 초기값을 주면, 같은 결과를 내는 것. mutual exc...
실시간 스케쥴링이 언제 필요한가? 미사일 제어 시스템과 같이 계산 시간을 엄격하게 지켜야 하는 시스템에서 실시간 스케쥴링이 필요하다. 그러나 일반 OS에서도 적당한 실시간 스케쥴링이 필요할 때도 있다. 따라서 실시간 시스템을 연성 실시간 시스템, 경성 실시간 시스템으로 분류한다. 연성 실시간 시스템(Soft real-time system)은 실시간 ...
CPU 스케줄링은 실질적으로 어떻게 구현되는가? 스케줄링 알고리즘이 많다. 어떤 스케쥴링이 좋을까? 자원을 가장 효율적으로 활용하는 스케쥴링 방법이 가장 좋을 것이다. 스케쥴링 알고리즘의 성능 평가 기준을 알아보자. CPU utilization (CPU 사용율): CPU를 100%중 얼마나 사용하고 있는가? Throughtput (처리율):...
Call Stack Frame이 무엇인가? Frame이 무엇인가? 스택에 쌓이는 데이터 묶음이다. 함수 호출 한번당 스택 프레임이 하나씩 생성되어 스택에 쌓인다. Frame의 구성 요소는 무엇이 있는가? Parameters : 함수가 호출될 때 넘겨받은 값. Return Address : 함수가 끝나고 돌아가야 하는 메모리 주소. 즉 함수가 ...
쓰레드(Thread)가 무엇인가? fork()를 통해 프로세스를 만들면 text 영역을 제외한 모든 Context가 복제되어 따로따로 사용된다. 굳이 Data 영역이나 Open한 File 등이 복제될 필요가 없다면? 서로 다른 실행 흐름 끼리의 데이터 공유를 편하게 할 수 있을 것이다. 이것이 쓰레드의 개념이다. 쓰레드끼리는 text, data ...
프로세스는 무엇인가? 프로세스란 한마디로 실행 중인 프로그램이다. 프로그램은 저장장치에 들어있는 기계어 덩어리고, 프로세스는 메인 메모리 위에서 CPU에 의해 실행되고 있는 기계어 덩어리다. 여러개의 프로세스를 관리할 수 있는 시스템을 멀티 태스킹이 가능한 시스템이라 한다. 태스크란 프로세스와 같다. 적어도 운영체제에선 태스크와 프로세스를 구분하지 ...
부트스트래핑 (Bootstraping)이란 무엇인가? 우리가 흔히 부팅이라고 하는 용어가 부트스트래핑이 어원이다. 부트스트래핑의 어원은 부츠 뒤에 달린 고리를 뜻한다. 부츠를 신을 때 그 고리를 잡고 신으면 남의 도움 없이 스스로 부츠를 신을 수 있게 된다. 메인 메모리는 기본적으로 컴퓨터를 끄면 모든 정보가 휘발된다. 컴퓨터를 키면 메모리에 아무것...
캐시(Cache) 메모리란 무엇인가? CPU는 ALU와 레지스터를 가지고 있다. CPU가 연산을 하려면 메인 메모리의 값을 레지스터에 가져와야 한다. 만약 필요할 떄마다 일일히 메모리에 요청하면, ALU가 아무리 빨라봤자 CPU의 속도는 메인 메모리 속도에 의존한다. 이를 어떻게 해결하는가? 캐시(Cache) 메모리를 도입하여 해결한다. 한번 사용한...
불법 메모리 접근, 불법 I/O, 악의적 무한 루프를 어떻게 보호하는가? I/O의 권한을 프로세스에서 막 취득할 수 있으면 키보드 정보나 웹캠 등의 정보를 뽑아갈 수 있다. 메모리 주소도 함부로 접근할 수 있으면, 다른 프로세스에서 사용하는 메모리의 정보를 조작하여 치트 프로그램을 만들 수 있다. 혹은 고의적으로 무수히 많은 프로세스를 생성해서 무한 ...