희곤의 블로그

운영체제 15. 상호작용하는 프로세스에서 발생하는 문제

상호작용하는 프로세스 사이에 발생할 수 있는 문제가 무엇인가? 서로 정보를 주고받거나, 공유 메모리를 사용하는 프로세스를 상호작용 프로세스라고 한다. 상호작용 프로세스 사이에는 네가지 이슈가 존재한다. determinacy (결정성) : 프로세스들이 실행 속도에 상관 없이 항상 같은 초기값을 주면, 같은 결과를 내는 것. mutual exc...

운영체제 14. 실시간 스케쥴링이 무엇일까

실시간 스케쥴링이 언제 필요한가? 미사일 제어 시스템과 같이 계산 시간을 엄격하게 지켜야 하는 시스템에서 실시간 스케쥴링이 필요하다. 그러나 일반 OS에서도 적당한 실시간 스케쥴링이 필요할 때도 있다. 따라서 실시간 시스템을 연성 실시간 시스템, 경성 실시간 시스템으로 분류한다. 연성 실시간 시스템(Soft real-time system)은 실시간 ...

운영체제 10. Process, Context, PCB

프로세스는 무엇인가? 프로세스란 한마디로 실행 중인 프로그램이다. 프로그램은 저장장치에 들어있는 기계어 덩어리고, 프로세스는 메인 메모리 위에서 CPU에 의해 실행되고 있는 기계어 덩어리다. 여러개의 프로세스를 관리할 수 있는 시스템을 멀티 태스킹이 가능한 시스템이라 한다. 태스크란 프로세스와 같다. 적어도 운영체제에선 태스크와 프로세스를 구분하지 ...

운영체제 9. Bootstrapping이 무엇인가

부트스트래핑 (Bootstraping)이란 무엇인가? 우리가 흔히 부팅이라고 하는 용어가 부트스트래핑이 어원이다. 부트스트래핑의 어원은 부츠 뒤에 달린 고리를 뜻한다. 부츠를 신을 때 그 고리를 잡고 신으면 남의 도움 없이 스스로 부츠를 신을 수 있게 된다. 메인 메모리는 기본적으로 컴퓨터를 끄면 모든 정보가 휘발된다. 컴퓨터를 키면 메모리에 아무것...

운영체제 8. Cache란 무엇인가

캐시(Cache) 메모리란 무엇인가? CPU는 ALU와 레지스터를 가지고 있다. CPU가 연산을 하려면 메인 메모리의 값을 레지스터에 가져와야 한다. 만약 필요할 떄마다 일일히 메모리에 요청하면, ALU가 아무리 빨라봤자 CPU의 속도는 메인 메모리 속도에 의존한다. 이를 어떻게 해결하는가? 캐시(Cache) 메모리를 도입하여 해결한다. 한번 사용한...

운영체제 7. 해킹을 어떻게 예방할까

불법 메모리 접근, 불법 I/O, 악의적 무한 루프를 어떻게 보호하는가? I/O의 권한을 프로세스에서 막 취득할 수 있으면 키보드 정보나 웹캠 등의 정보를 뽑아갈 수 있다. 메모리 주소도 함부로 접근할 수 있으면, 다른 프로세스에서 사용하는 메모리의 정보를 조작하여 치트 프로그램을 만들 수 있다. 혹은 고의적으로 무수히 많은 프로세스를 생성해서 무한 ...