운영체제 6. Read를 호출하면 무슨일이 벌어질까
Read 시스템 콜을 프로세스에서 호출하면 어떤일이 벌어지는가? read를 호출하면, libc.a 라이브러리의 read 함수가 호출된다. 이 read 함수는 read 시스템 콜을 호출하는 트랩 명령어가 기록되어 있다. CPU는 트랩 명령어를 만나면 인터럽트 처리 루틴을 호출한다. 이 루틴은 다음과 같다. CPU Context를 보존하고, 커널 모...
Read 시스템 콜을 프로세스에서 호출하면 어떤일이 벌어지는가? read를 호출하면, libc.a 라이브러리의 read 함수가 호출된다. 이 read 함수는 read 시스템 콜을 호출하는 트랩 명령어가 기록되어 있다. CPU는 트랩 명령어를 만나면 인터럽트 처리 루틴을 호출한다. 이 루틴은 다음과 같다. CPU Context를 보존하고, 커널 모...
CPU는 어떻게 동작하는가? CPU는 그저 멍청하게 정해진 싸이클을 무한 반복하는 연산 장치이다. 어떤 과정을 반복하는가? Fetch, 가져오기 : 제어 장치(CU)가 PC 레지스터에 적힌 메모리 주소에서 실행할 명령어를 가져온다. 가져온 명령어는 명령어 레지스터(IR)에 저장한다. 이후 PC 값을 1 증가시킨다. Decode, 해독하기 : ...
시스템 콜이 무엇인가? 간단하게 말해 응용 프로그램이 커널을 사용하기 위한 인터페이스다. 왜 인터페이스로 만들어두었을까? 응용 프로그램이 함부로 사용하면 안되는 명령어들이 존재한다. 입출력, 메모리 접근, CPU 제어, 타이머 설정, 레지스터 접근 등이 그런 명령어에 해당한다. 이런 중요한 명령어를 특권 명령어라고 부른다. 특권 명령어를 응용 프로그...
시분할 시스템을 어떻게 구현해야 될까? 실제로 시스템을 구현할 때 해결해야 할 문제점들을 생각해보자. 누가 스케쥴링을 해주는가? 입출력 장치를 어떻게 관리하는가? 응용 프로그램은 다른 응용 프로그램의 메모리 영역을 침범해선 안된다. 어떻게 보호하는가? 메모리는 재부팅하면 휘발된다. 프로그램이 실행되려면 메모리에 올라가 있어야 한다. 프...
Q러닝이 무엇인가? Q러닝은 에이전트가 사전 지식 없이, 시행착오를 통해 환경과 상호작용하며 가장 큰 보상을 얻는 경로를 스스로 탐색하는 강화학습 알고리즘이다. 그게 어떻게 가능할까? Q러닝은 현재 상태를 알면 미래 상태를 알 수 있다는 마르코프 성질에 기반한다. 즉, 과거 상태를 고려하지 않고 현재 상태만을 고려한다. 그리고 현재 상태에서 어떤 ...
마르코프 성질이 무엇인가? 현실 세상에는 직전의 상태가 다음 상태를 결정짓는 경우가 많다. ‘오늘 날씨가 흐렸으니 내일은 비가 올 것 같다’와 같이 말이다. 미래의 상태가 현재의 상태에만 의존하는 성질을 마르코프 성질이라고 한다. 즉, 현재의 상태를 알고 있으면 미래를 예측하는 예측 모델을 만들 수 있다. 어떻게 예측할 수있을까? 먼저 상태를 정의...
베이지안 추론이 무엇인가? 베이지안 추론이란 증거를 근거하여 어떤 가설이 얼마나 정확한지 확률로 추론하는 추론 방법이다. 이 베이지안 추론에 베이스 정리를 사용한다. 베이스 정리을 근거해서 베이지안 분류기를 만들 수 있다. 베이지안 분류기는 분류모델의 시초격이다. 베이지안 분류기는 어떤 데이터를 가장 확률이 높은 클래스로 분류하는 모델이다. 학습이 ...
불확실한 정보를 기반으로 어떻게 추론하는가? 결국 목표는 추론 가능한 에이전트를 만드는 것이다. 지금 지식 베이스는 결정론적 지식, 비결정론적 지식을 구축할 수 있게 되었다. 결정론적 지식은 그냥 추론 사슬을 통해 추론하면 된다. 주관적인 지식은 퍼지 추론을 사용한다. 그렇다면, 불확실한 지식을 가지고 어떻게 추론을 통해 새로운 지식을 얻어낼까? 불...
애매한(Fuzzy) 지식을 어떻게 모델링할까? Fuzzy란, 모호한 지식을 명확하게 다루기 위한 수리 이론이다. 모호한 지식이란, ‘저 여자는 예쁘다’와 같이 참/거짓으로 구분하기 어려운 지식을 말한다. 따라서 Fuzzy Theory에선 가중치를 사용한다. 어떤 여자는 0.6만큼 예쁘다, 어떤 여자는 0.4만큼 예쁘다와 같이 주관적인 지식을 표현한다....
결정론적 지식을 어떻게 모델링할까? 가장 기본적인 아이디어는, 우선 인간이 이해 가능한 사실을 기계가 이해 가능한 사실로 매핑해야 한다. 이후 기계가 추론 과정을 통해 새로운 지식을 출력하고, 그 출력한 지식을 다시 인간이 이해 가능한 사실로 역매핑하는 과정을 거친다. 사실을 기계가 이해 가능하도록 표현하는 방법에는 네가지가 있다. (1) 규칙...