목록전공 공부 (37)
버티의 블로그
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/biK80E/btsHuQAQ3PS/Q02Kz9354WFtY1l64O8nNK/img.png)
Markov Decision Process기존 MRP는 상태 전이가 확률적으로만 결정됐지만, MDP는 에이전트가 행동을 선택하는 것을 추가하여 이에 따른 상태 변화와 보상이 달라지는 환경을 뜻한다. MDP는 아래 4가지 요소로 구성된다.S : 에이전트의 상태A : 에이전트가 취할 수 있는 모든 가능한 actionP : 특정 s에서 특정 a를 취했을 때 다음 s로 전이될 확률, P(s′∣s,a)가 이 의미이다.R : 특정 s에서 특정 a를 취했을 때 받는 보상, R(s,a,s′)로 표기한다. π : 에이전트가 행동을 결정하는 규칙으로, 상태 s에서 행동 a를 선택할 확률을 π(a∣s)로 나타낸다.Bellman Expectation Equation 1장에서 살펴본 state value function은 특정..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/ccCEAq/btsHqxu61MS/rV9L7ljDdlFTRgmFf1hBUk/img.png)
앞장에서 배운 Synchronization Tools로 어떤 문제들을 해결할 수 있는지 알아본다.Bounded-Buffer Problem제한된 버퍼에 데이터를 채우고 가져가는 문제, 생산자-소비자 문제와 동일사이즈 n의 버퍼, 3개의 Semaphore 사용한다.mutex : 초기값 1, binaryfull : 데이터가 있는 부분의 양, 초기값 0, 0~nempty : 데이터가 없는 부분의 양, 초기값 n, 0~n 생산자는 비어있는 상태를 보고 데이터를 추가해야하므로, empty를 고려한다.wait(empty) : 데이터 하나를 추가할 것이므로 empty를 1 감소wait(mutex) : mutex가 1이면 mutex를 1 감소시키고 critical section으로 접근critical section(ad..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/cuyKuc/btsHgB6swcA/n7YapEkVm8SMmzjCcVKNH0/img.png)
기존의 counter++를 하려면, 메모리에 존재하는 counter 변수 값을 CPU 내 레지스터 R1에 복사해온 다음, R1에서 증가시키고 다시 counter에 넘겨준다. 이처럼 high-level language인 counter++는 low-level language(assembly language)로 3개의 명령어로 쪼개져 실행된다. 여기서 문제는 위처럼 프로세스가 동시에 실행됐을 때이다. 명령어 실행 순서가 랜덤하므로 항상 다른 값이 나올 수 있다. 누가 마지막에 counter를 write했느냐에 따라 값이 변경되는데, 이런 상황을 race condition이라고 한다. OS에서도 같은 문제가 발생할 수 있다. 위 그림처럼 두 프로세스가 동시에 fork를 요청하면 생성된 프로세스 pid가 같을 수..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/kHTZP/btsG5UXU6tv/cDeKHtgXV9ejwYjGLwQGx1/img.png)
CPU Scheduling : ready 상태에 있는 프로세스 혹은 스레드 중 어느 것을 할당할 것인지 결정하는 문제CPU 스케쥴러가 스케쥴링을 수행한다.I/O bound job : 짧은 실행시간, 많은 실행 수 → 주로 사람과 상호작용하는 task가 많다.CPU bound job : 긴 실행시간, 적은 실행 수Dispatcher : 스케쥴러가 선택한 프로세스로 전환해주는 역할Context Switch를 한 뒤 CPU를 커널모드에서 유저모드로 바꾼다. 여기서 PCB를 꼭 사용한다. running 상태인 프로세스가 CPU 할당 해제가 되었을 때 (1,2,4의 경우) 새로운 프로세스를 할당하는데,1,4번의 경우에만 스케쥴링을 하는 방식을 nonpreemptive(비선점방식), 아니면 preemptive(선점..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/EH1ZO/btsGNzuOHaI/FkxKICxoqPJ32lMLDEy77k/img.png)
I/O Mapping I/O Mapping은 CPU가 I/O 장치와 통신하는 매커니즘인데, I/O 장치의 주소를 할당하는 방식에 따라 2가지로 나뉜다. Memory-mapped I/O : I/O 장치들이 CPU의 메모리 공간 내에 같이 매핑된다. I/O-mapped I/O : I/O 장치들이 메모리와 서로 다른 주소 공간에 매핑된다. Protocol for Interaction between CPU and Controller CPU는 입출력 작업의 진행 상태를 관리하여 시스템 리소스를 효율적으로 사용해야 하기 때문에 I/O(Device) Controller의 상태를 모니터링할 필요가 있다. 이에 2가지 방법이 존재한다. 식당에서 벨을 누르는 예시로 간단히 설명하자면, 누가 눌렀는지 직원이 직접 확인하는 ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/mMQEz/btsGIM07SZJ/DAJRvv1I9DzIvOmXpP9S7K/img.png)
Computer Startup 컴퓨터에 파워가 들어오면, 반드시 Bootstrap program(loader)가 Booting 작업을 한 후 시스템이 시작된다. 이 과정을 포함해서 사용자가 컴퓨터의 전원을 킨 다음 일어나는 과정은 다음과 같다. Bootstrap loader은 disk(보통 ROM)에서 OS kernel을 찾는다. 찾은 OS kernel을 메모리에 적재한다. OS 실행을 시작한다. Computer Organization 컴퓨터 시스템은 Bus라고 불리우는 장치가 CPU, 메모리, 입출력 장치, 컨트롤러 등을 모두 연결하는 구조인데, 버스는 주소 버스, 데이터 버스, 그리고 제어 버스까지 3가지 유형으로 나뉜다. 주소 버스 (Address Bus) : CPU가 메모리 또는 입출력 장치에 특..