본문 바로가기

컴퓨터공학47

강화 학습 4.Temporal Difference(TD) Learning 서론 Monte Carlo 방법은 에피소드 환경에만 적용된다는 단점과 에피소드가 매우 길면 가치 함수를 계산하기 위해 오랜 시간이 걸린다는 단점이 있다. 따라서 모델 없거나(model-free), 모델 역학(model dynamics)을 미리 알 필요가 없는 비 에피소드 작업에도 적용 가능한 학습 알고리즘인 TD(temporal difference) 학습에 대해 알아보자. TD(Temporal Difference) Learning TD방식은 Monte Carlo로 아이디어와 dynamic programming 아이디어의 결합한 방식이다. Monte Carlo 방법과 마찬가지로 TD 방법은 환경의 dynamics models 없이 원시 경험에서 직접 학습할 수 있다. 또한, DP와 마찬가지로 TD 방법은 .. 2023. 4. 18.
OS 7. 동기화 예제 서론 임계구역 문제를 제시하고 여러 병행 프로세스가 데이터를 공유할 때 어떻게 경쟁 조건이 발생할 수 있는지에 중점을 두었다. 계속해서 경쟁 조건이 발생하지 않도록 하여 임계구역 문제를 해결하는 몇 가지 도구를 검토하였다. 고전적인 동기화 문제들(Classical Problems of Synchronization) 유한 버퍼 문제(Bounded-Buffer Problem) 이 문제는 일반적으로 동기화 프리미티브(primitive)들의 능력을 설명하기 위하여 사용된다. 어느 특정 구현에 국한됨 없이 이 해결 방법의 일반적인 구조를 제시한다. int n; // 필수 세마포 semaphore mutex = 1; semaphore empty = n; semaphore ful = 0; N개의 버퍼로 구성된 풀(p.. 2023. 4. 6.
OS 6. 동기화 도구(Synchronization Tools) 서론 협력적 프로세스(collaborative process)는 시스템 내에서 실행 중인 다른 프로세스의 실행에 영향을 주거나 영향을 받는 프로세스이다. 협력적 프로세스는 노리 주소 공간(코드 및 데이터)을 직접 공유하거나 공유 메모리 또는 메시지 전달을 통해서만 데이터를 공유할 수 있다. 그러나 공유 데이터를 동시에 접근하면 데이터의 일관성을 망칠 수 있다. 이 논리 주소 공간을 공유하는 협력적 프로세스의 질서 있는 실행을 보장하여, 이를 통해 데이터의 일관성을 유지하는 다양한 도구들을 소개한다. 임계구역 문제 프로세스 동기화에 관한 논의는 임계구역 문제로 부터 시작된다. 경쟁 상황(Race Condition) 동시에 여러 개의 프로세스가 동일한 자료를 접근하여 조작하고, 그 실행 결과가 접근이 발생한.. 2023. 4. 6.
OS 5. CPU 스케줄링 서론 CPU스케줄링은 다중 프로그램 운영체제의 기본이다. 운영체제는 CPU를 프로세스 간에 교환함으로써, 컴퓨터를 보다 생산적으로 만든다. 여기서 기본적인 스케줄링 개념과 여러 스케줄링 알고리즘을 소개한다. 일반적인 스케줄링 개념을 논의하는 경우 프로세스 스케줄링을 사용하고 스레드에 국한된 개념을 가리키는 경우에는 스레드 스케줄링이라는 용어를 사용한다. 그리고 코어가 CPU의 기본 계산 단위이며 프로세스가 CPU코어에서 실행되는 방식을 기억하자. CPU 스케줄러 기본 개념 다중 프로그래밍의 목적은 CPU 이용률을 최대화하기 위해 항상 실행 중인 프로세스를 가지게 하는 데 있다. 다중 프로그래밍에 대한 기본 아이디어는 간단하다. 하나의 프로세스는 전형적으로 어떤 I/O 요청이 완료되기를 기다려야만 할 때까.. 2023. 4. 6.
OS 4. Threads& Concurrency 서론 3장에서 소개한 프로세스 모델은 한 프로세스가 하나의 제어 스레드로 프로그램을 실행한다고 가정하였다. 그러나 거의 모든 현대 운영체제는 한 프로세스가 다중 스레드를 포함하는 특성을 제공한다. 다중 CPU를 제공하는 최신 다중 코어 시스템에서 스레드 사용을 통한 병렬 처리의 기회를 식별하는 것이 점차 중요해진다. 스레드 개념(Thread concept) 스레드(Thread)는 CPU 이용의 기본 단위이다. 스레드는 스레드 ID, 프로그램 카운터(PC), 레지스터 집합, 그리고 스택으로 구성된다. 스레드는 같은 프로세스에 속한 다른 스레드와 코드, 데이터 섹션, 그리고 열린 파일이나 같은 운영체제 자원들을 공유한다. 전통적인 프로세스는 하나의 제어 스레드를 가지고 있다. 만약 프로세스가 다수의 제어 스.. 2023. 4. 5.
OS 3. 프로세스 관리 서론 프로세스는 실행 중인 프로그램이라고 생각할 수 있다. 정확히는 프로세스는 작업의 단위이다. 즉 대부분 시스템은 프로세스들의 집합으로 구성된다. 운영체제 - 프로세스는 시스템 코드를 실행시키고, 사용자 프로세스는 사용자의 코드를 실행시킨다. 이 모든 프로세스는 병행하게 처리될 수 있다. 프로세스 개념(Process Concept) 운영체제에서 모든 CPU활동을 어떻게 불러올지에 대해 많은 논의가 있었다. 초창기 컴퓨터는 작업(job)을 실행하는 일괄처리 시스템이었고, 사용자 프로그램 또는 task를 실행하는 시분할 시스템이 뒤를 이었다. 여러 측면에서 모든 활동은 유사하므로 이들을 프로세스라고 부를 수 있다.(배치 시스템 – jobs, 시분할 시스템 – user programs or tasks) 비공.. 2023. 4. 4.
강화 학습 3.Monte Carlo(MC) Methods 서론 MDP에서 최적의 정책을 찾기 위해 DP를 사용하였고, DP를 사용하려면 transition과 reward probabilities를 알고 있는 model dynamics에서 가능하였다. 하지만 model dynamics을 모르는 경우도 있을 것이다. 이 경우 환경에 대한 지식이 없을 때 최적의 정책을 찾는 데 매우 강력한 Monte Carlo 알고리즘을 사용한다. Monte Carlo Methods Monte Carlo는 반복된 무작위 추출(Sampling)을 이용하여 함수의 값을 수리적으로 근사하는 알고리즘으로 매우 통계적인 방법이다. 이 방법은 물리학과 공학, 컴퓨터 과학 등 다양한 분야에서 가장 인기 있고 가장 일반적으로 사용되는 알고리즘 중 하나이다. Ex: Estimating the Va.. 2023. 4. 4.
OS 2.운영 체제 구조 서론 운영체제를 사용자, 프로그래머, 운영체제 설계자의 관점에서 바라본 운영체제의 세 가지 측면을 살펴보자. 운영체제가 제공하는 서비스에 초점 운영체제가 사용자와 프로그래머에게 제공하는 인터페이스에 초점 시스템의 구성요소와 그들의 상호 연결에 초점 Operating System Services 운영체제는 사용자에게 제공하는 서비스 사용자 인터페이스 명령줄 인터페이스(Command Line Interface, CLI), 그래픽 사용자 인터페이스(Graphics User Interface, GUI) 프로그램 실행 프로그램을 메모리에 로드하고 실행한 다음 종료한다. I/O 작업 키보드/마우스에서 입력, 모니터/프린터로 출력한다. 파일 시스템 조작 파일 또는 디렉토리 읽기/쓰기, 파일 생성/삭제/검색 등 커뮤니.. 2023. 4. 3.
OS 1.기본개념 서론 운영체제는 우리가 흔히 말하는 windows, mac, ios, android 등과 "사물 인터넷"을 포함하는 자동차와 홈기기 및 클라우드 컴퓨팅 환경까지 널리 사용되고 있다. 이런 운영체제들의 근본적인 직책은 하드웨어의 자원들을 프로그램에 할당하는 것이다. 그렇기에 운영체제를 이해하기 위해서는 컴퓨터 하드웨어의 구조와 구성을 이해하는 것이 중요하다. 운영체제 정의 컴퓨터 시스템 구성 운영체제에 들어가기에 앞서 컴퓨터 시스템에 대해 알아보자. 컴퓨터 시스템에는 사용자, 응용프로그램, 운영체제, 하드웨어로 구성되어 있다.(구성요소) 하드웨어는 중앙 처리 장치(CPU), 메모리 및 입출력(I/O) 장치로 구성되어 있다. 운영체제 정의 일반적으로 운영체제에 대한 적합한 정의는 없다. 운영체제는 유용한 컴.. 2023. 4. 2.
반응형