목록전체 글 (37)
버티의 블로그
Memory Protection 프로세스가 segment 형태로 들어간게 아닌, 하나의 덩어리로 들어간 환경에서는 Base와 Limit이라는 레지스터로 CPU의 메모리 접근을 컨트롤하고 메모리를 보호할 수 있다.Base : 프로세스가 접근할 수 있는 메모리의 시작 주소를 저장Limit : 프로세스가 접근할 수 있는 메모리의 크기를 저장오른쪽 그림에서, CPU에 메모리에 접근할 때 base보다 주소값이 크고 base+limit보다 주소값이 작아야 합법적인 주소로 간주하고 접근을 허용한다.Address Binding바인딩은 명령어와 데이터에 메모리 주소를 지정해주는 과정인데, 3가지 종류가 있다.Compile time binding : 컴파일을 시작하면서 적재할 메모리 주소를 지정Load time bindi..
Deadlock 앞서 10장에서 봤던 "Dining-Philosophers Problem"을 해결하는 과정에서 Deadlock이 발생할 수 있다 했는데, 다시 말하자면 여러 프로세스가 리소스를 받을 수 없는 상태에서 동시에 리소스를 무한히 대기하는 상태로 이로 인해 시스템이 정상 작동될 수 없는 상황이다. 헷갈릴 수 있는 다른 용어들은 다음과 같다.Livelock : Deadlock과 반대로 한 프로세스가 무한히 running상태에 빠져 CPU를 점유하며 프로그램 진도를 못나가는 상태Starvation : Deadlock과 유사하지만, Starvation은 일어날 수 있는 일을 대기하는 상태이다. 그냥 우선순위가 낮아 필요한 리소스를 장시간 얻지 못하는 상태이다.Deadlock이 발생할 수 있는 필요충..
Windows Synchronization스레드간의 동기화 : 유저 모드 동기화 기법 사용스레드 동기화 시 커널 모드보다 유저 모드가 더 효율적동기화 객체 예시 : Critical Section프로세스간/스레드간의 동기화 : 커널 모드 동기화 기법 사용동기화 객체 예시 : Mutex, Semaphore, Event 객체의 시그널/비시그널 상태Windows Semaphore and Event Objects세마포어 객체CreateSemaphore : count의 초기값, 최대값을 설정해서 세마포어 생성윈도우에서의 세마포어는 wait = WaitForSingleObject, signal = ReleaseSemaphore WaitFor(single/Multiple)Object : (단일/복수) 객체가 시그널 상..
n-Step Prediction and Return 4장에서본 TD는 바로 다음 시점인 t+1에서의 reward와 state value만을 TD Target으로 설정해서 state value를 업데이트 했다. 사실 이 방식은 1 step마다 state value를 업데이트 하는 1-step TD방식이었고, 이 step을 n만큼 늘려 적용할 수 있는데 이를 n-step TD라고 한다. 예를 들어, 3-step TD는 3 step마다 업데이트를 진행하며, t+3까지의 상황을 고려한다. 만약 무한히 가는 n-step TD로 확장하면 MC와 거의 동일하게 된다. 따라서 n-step TD를 일반화 하면 위와 같이 MC의 식과 거의 유사해진다. 그래서 n-step TD에서는 적당한 n값을 설정해주는 것이 중요한데..
Model-Free Reinforcement Learning기존의 MDP는 모델 기반이라 환경에 적합한 모델을 정확히 알고 있어야 하는데, 이는 복잡한 환경에서는 현실적으로 어려울 수 있다. 따라서 환경에 대한 정보 없이도 학습이 가능한 Model-Free RL이 존재하는데, 이번 단원에서 Model-Free RL의 대표적인 방식인 MC와 TD를 알아볼 것이다. Monte-Carlo(MC) : 에피소드가 진행되는 동안 발생한 reward들을 Gt에 저장했다가 에피소드가 종료되면 Gt값으로 평균을 계산해서 한번에 V(s)를 업데이트한다. 그래서 에피소드가 종료 시점이 존재하는 완전한 에피소드에서만 사용 가능하다. 이로 인해 에피소드가 끝날때까지 기다려야 한다는 단점이 존재한다.N(St) : 방문한 stat..
MDP에 대한 정보를 모두 알고 있을 때, 이들을 사용하여 policy를 개선하는 과정을 MDP Planning이라고 한다. 이러한 최적의 policy를 찾는 이유는 에이전트가 받게 되는 보상을 최대화하기 위함이다. 이 MDP Planning은 크게 Policy Iteration과 Value Iteration이 있다.Policy IterationPolicy Iteration은 크게 두 과정으로 나뉘고 이를 최적의 policy를 찾기 전까지 계속 반복하는 형태이다.Policy Evaluation : 정해진 Policy로 state value값들을 업데이트하는 단계Policy Improvement : 업데이트된 state value로 새로운 policy를 결정하는 단계1) Policy Evaluation초기..