운영체제 9. Bootstrapping이 무엇인가
부트스트래핑 (Bootstraping)이란 무엇인가? 우리가 흔히 부팅이라고 하는 용어가 부트스트래핑이 어원이다. 부트스트래핑의 어원은 부츠 뒤에 달린 고리를 뜻한다. 부츠를 신을 때 그 고리를 잡고 신으면 남의 도움 없이 스스로 부츠를 신을 수 있게 된다. 메인 메모리는 기본적으로 컴퓨터를 끄면 모든 정보가 휘발된다. 컴퓨터를 키면 메모리에 아무것...
부트스트래핑 (Bootstraping)이란 무엇인가? 우리가 흔히 부팅이라고 하는 용어가 부트스트래핑이 어원이다. 부트스트래핑의 어원은 부츠 뒤에 달린 고리를 뜻한다. 부츠를 신을 때 그 고리를 잡고 신으면 남의 도움 없이 스스로 부츠를 신을 수 있게 된다. 메인 메모리는 기본적으로 컴퓨터를 끄면 모든 정보가 휘발된다. 컴퓨터를 키면 메모리에 아무것...
캐시(Cache) 메모리란 무엇인가? CPU는 ALU와 레지스터를 가지고 있다. CPU가 연산을 하려면 메인 메모리의 값을 레지스터에 가져와야 한다. 만약 필요할 떄마다 일일히 메모리에 요청하면, ALU가 아무리 빨라봤자 CPU의 속도는 메인 메모리 속도에 의존한다. 이를 어떻게 해결하는가? 캐시(Cache) 메모리를 도입하여 해결한다. 한번 사용한...
불법 메모리 접근, 불법 I/O, 악의적 무한 루프를 어떻게 보호하는가? I/O의 권한을 프로세스에서 막 취득할 수 있으면 키보드 정보나 웹캠 등의 정보를 뽑아갈 수 있다. 메모리 주소도 함부로 접근할 수 있으면, 다른 프로세스에서 사용하는 메모리의 정보를 조작하여 치트 프로그램을 만들 수 있다. 혹은 고의적으로 무수히 많은 프로세스를 생성해서 무한 ...
Read 시스템 콜을 프로세스에서 호출하면 어떤일이 벌어지는가? read를 호출하면, libc.a 라이브러리의 read 함수가 호출된다. 이 read 함수는 read 시스템 콜을 호출하는 트랩 명령어가 기록되어 있다. CPU는 트랩 명령어를 만나면 인터럽트 처리 루틴을 호출한다. 이 루틴은 다음과 같다. CPU Context를 보존하고, 커널 모...
CPU는 어떻게 동작하는가? CPU는 그저 멍청하게 정해진 싸이클을 무한 반복하는 연산 장치이다. 어떤 과정을 반복하는가? Fetch, 가져오기 : 제어 장치(CU)가 PC 레지스터에 적힌 메모리 주소에서 실행할 명령어를 가져온다. 가져온 명령어는 명령어 레지스터(IR)에 저장한다. 이후 PC 값을 1 증가시킨다. Decode, 해독하기 : ...
시스템 콜이 무엇인가? 간단하게 말해 응용 프로그램이 커널을 사용하기 위한 인터페이스다. 왜 인터페이스로 만들어두었을까? 응용 프로그램이 함부로 사용하면 안되는 명령어들이 존재한다. 입출력, 메모리 접근, CPU 제어, 타이머 설정, 레지스터 접근 등이 그런 명령어에 해당한다. 이런 중요한 명령어를 특권 명령어라고 부른다. 특권 명령어를 응용 프로그...
시분할 시스템을 어떻게 구현해야 될까? 실제로 시스템을 구현할 때 해결해야 할 문제점들을 생각해보자. 누가 스케쥴링을 해주는가? 입출력 장치를 어떻게 관리하는가? 응용 프로그램은 다른 응용 프로그램의 메모리 영역을 침범해선 안된다. 어떻게 보호하는가? 메모리는 재부팅하면 휘발된다. 프로그램이 실행되려면 메모리에 올라가 있어야 한다. 프...
Q러닝이 무엇인가? Q러닝은 에이전트가 사전 지식 없이, 시행착오를 통해 환경과 상호작용하며 가장 큰 보상을 얻는 경로를 스스로 탐색하는 강화학습 알고리즘이다. 그게 어떻게 가능할까? Q러닝은 현재 상태를 알면 미래 상태를 알 수 있다는 마르코프 성질에 기반한다. 즉, 과거 상태를 고려하지 않고 현재 상태만을 고려한다. 그리고 현재 상태에서 어떤 ...
마르코프 성질이 무엇인가? 현실 세상에는 직전의 상태가 다음 상태를 결정짓는 경우가 많다. ‘오늘 날씨가 흐렸으니 내일은 비가 올 것 같다’와 같이 말이다. 미래의 상태가 현재의 상태에만 의존하는 성질을 마르코프 성질이라고 한다. 즉, 현재의 상태를 알고 있으면 미래를 예측하는 예측 모델을 만들 수 있다. 어떻게 예측할 수있을까? 먼저 상태를 정의...
베이지안 추론이 무엇인가? 베이지안 추론이란 증거를 근거하여 어떤 가설이 얼마나 정확한지 확률로 추론하는 추론 방법이다. 이 베이지안 추론에 베이스 정리를 사용한다. 베이스 정리을 근거해서 베이지안 분류기를 만들 수 있다. 베이지안 분류기는 분류모델의 시초격이다. 베이지안 분류기는 어떤 데이터를 가장 확률이 높은 클래스로 분류하는 모델이다. 학습이 ...