컴퓨터공학47 OS 13. File System Interface 서론 사용자 대부분에게 파일 시스템은 가장 많이 노출되는 범용 운영체제의 부분이다. 운영체제와 컴퓨터 시스템의 모든 사용자의 데이터와 프로그램을 온라인으로 저장하는 실제적인 파일의 집합체와 시스템 내의 모든 파일에 관한 정보를 제공하는 디렉터리 구조로 구성된다. 파일의 다양한 면과 주된 디렉터리 구조에 관해서 살펴보고 다중 프로세스, 사용자 그리고 컴퓨터 간에 파일을 공유하는 의미를 알아보자. File system 파일 시스템은 컴퓨터 시스템에서 데이터를 조직화하고 저장하는 방법이다. 파일 시스템은 사용자 관점과 저장 관리 관점에서 다룰 수 있다. 사용자 관점에서 파일 시스템은 파일과 디렉터리의 트리 구조로 표현된다. 사용자는 파일 시스템 인터페이스를 통해 파일을 생성, 읽기, 쓰기, 삭제하는 등의 작업.. 2023. 5. 19. 12. I/O Systems 서론 컴퓨터의 두 가지 주요 작업은 계산(computing)과 입축력 작업(I/O)이다. 많은 경우 계산 혹은 연산 처리 작업은 부수적이며 입출력 작업이 중요하다. I/O Hardware Modern I/O Systems 현대에는 엄청나게 많은 종류의 I/O 장치가 있다. CPU는 장치 컨트롤러을 통해 이들과 상호 작용한다. 장치 컨트롤러에는 읽고 쓸 수 있는 일련의 레지스터가 포함되어 있다. Programmed I/O 프로그램 제어 입출력(Programmed I/O)은 포트 입출력(Port I/O)과 메모리 맵 입출력(Memory-mapped I/O)로 구성된다. 포트 입출력에서는 특수한 프로세서 명령어를 사용하여 데이터를 전송한다. 예를 들어, 인텔 아키텍처에서는 in/out 명령어가 있다. 또한, .. 2023. 5. 18. OS 11. Mass-Storage Structure 서론 컴퓨터의 비휘발성 저장장치 시스템인 대용량 저장장치가 어떻게 구성되어 있는지 알아보자. 많은 유형의 대용량 저장장치가 있으며, 모든 유형에 해당하는 내용일 경우 NVS(비휘발성 저장장치, non-volatile storage)라는 용어를 사용하거나 저장장치 "드라이브"에 대해 이야기한다. Disk Structure Hard Disks 하드 디스크의 플래터 크기는 .85인치에서 14인치까지 다양하며, 주로 3.5인치, 2.5인치, 1.8인치 크기가 일반적으로 사용된다. 하드 디스크의 용량은 드라이브 당 30GB에서 3TB까지 다양하며 성능 측면에서, 이론적인 전송 속도(Transfer Rate)는 6Gb/초이지만, 실제로는 1Gb/초의 실제 전송 속도를 가지고 있다. 탐색 시간(Seek time)은 .. 2023. 5. 18. OS 10. Virtual Memory 서론 메모리의 여러 관리 전략에 대해 논의하였다. 이러한 전략들은 모두 목적이 같다. 즉, 다중 프로그래밍을 실현하기 위해 메모리에 많은 프로세스를 동시에 유지하는 것이다. 그러나, 지금까지의 접근 방시은 프로세스 전체가 실행되기 전에 메모리로 올라와야 한다는 것을 전제로 하고 있다. 그렇기에 우리는 프로세스 전체가 메모리 내에 올라오지 않더라도 실행이 가능하도록 하는 기법인 가상 메모리(Virtual Memory)를 알아보자. Virtual Memory Concepts 가상 메모리는 제한된 물리 메모리 크기로 인해 실행되지 못할 프로그램을 실행할 수 있게 해 준다. 프로그램은 전체가 아닌 일부만 실행되기 때문에 필요한 부분만 메모리에 로드된다. 예를 들어, 큰 배열의 경우 실제로 사용되는 부분만 메모리.. 2023. 5. 18. OS 9. Main Memory 서론 CPU스케줄링의 결과로 CPU 이용률과 사용자에 제공하는 컴퓨터 응답속도를 모두 향상할 수 있다. 그러나 이러한 성능 향상을 실현하려면 많은 프로세스를 메모리에 유지해야 한다. 즉, 메모리를 공유해야 한다. 메모리를 관리하는 다양한 방법에 대해 알아보자.(대부분의 알고리즘은 하드웨어와 운영체제 메모리 관리를 밀접하게 통합해야 한다.) 주소 바인딩(Address binding) 주소 바인딩이란 프로그램 명령어와 데이터를 물리적 메모리 주소에 연결하는 과정을 말한다. 주소 바인딩은 세 단계에서 발생할 수 있다. 컴파일 타임 바인딩(Compile time binding) 로드 시간 바인딩(Load time binding) 실행 시간 바인딩(Execution time binding) 컴파일 타임 바인딩(C.. 2023. 5. 18. OS 8. Deadlocks 서론 다중 프로그래밍 환경에서는 여러 스레드가 한정된 자원을 사용하려고 서로 경쟁할 수 있다. 한 스레드가 자원을 요청했을 때, 그 시각에 그 자원을 사용할 수 없는 상황이 발생할 수 있고, 그때는 스레드가 대기 상태로 들어간다. 이 처럼 대기 중인 스레드들이 결코 다시는 그 상태를 변경시킬 수 없으면 이런 상황을 교착상태(Deadlocks)라 부른다. 교착 상태(Deadlocks) 교착 상태는 프로세스 집합 내의 모든 프로세스가 그 집합의 다른 프로세스에 의해서만 일어날 수 있는 이벤트를 기다리는 상황이라고 정의할 수 있다. 교착 상태를 간단히 이해하기 위해 7장의 식사하는 철학자 문제를 상기해 보자. 이 상황에서 자원은 젓가락으로 표시된다. 모든 철학자가 동시에 배가 고프고 각 철학자가 왼쪽에 있는 .. 2023. 5. 16. 강화 학습 7. Deep Q Network(DQN) 서론 DQN(Deep Q Network)은 DRL(심층 강화 학습) 알고리즘이자 딥러닝과 강화학습을 결합한 알고리즘이다. DQN은 딥러닝 신경망을 사용하여 강화학습 에이전트를 학습시키고, 최적의 행동을 결정하는 Q-함수를 근사하는 방식을 가진다. 이전의 강화학습 알고리즘과 달리, 특징 추출기와 Q-함수 근사기를 하나의 신경망으로 통합하여 end-to-end 학습이 가능해졌다. 이를 통해 데이터 처리 속도가 향상되어 효과적인 학습이 가능해졌으며, 여러 복잡한 게임에서 인간 수준의 성능을 보이는 결과를 얻었다. 이 알고리즘을 제시한 Google의 DeepMind 연구원은 게임 화면을 입력으로 사용하여 모든 Atari(아타리) 게임을 할 때 인간 수준의 결과를 얻었다. Deep Q Networks (DQNs).. 2023. 5. 16. 강화 학습 6.Deep Learning Fundamentals 서론 딥러닝이 발전을 하면서 알파고와 같은 딥러닝과 강화학습이 결합된 형태가 생겨났기에 딥러닝의 간단한 개념에 대해 공부한 다음에 결합된 형태에 대해 알아보자. Artificial Neuron 뉴런은 인간 두뇌의 기본 계산 단위이다. 뉴런은 수상돌기라고 하는 가지 모양의 구조를 통해 외부 환경, 감각 기관 또는 다른 뉴런으로부터 입력을 받는다. 이러한 입력은 강화되거나 약화된다. 즉, 중요도에 따라 가중치가 부여된 다음 체세포(soma, 세포체)에서 함께 합산된다. 그런 다음 세포체에서 이러한 합산된 입력이 처리되어 축삭을 통해 이동하고 다른 뉴런으로 전송된다. 인공뉴런은 입력으로 외부, 센서 혹은 다른 뉴런에서 들어오며 weights를 곱하고 모든 입력의 합한 뒤 bias를 더해준다. 만약 입력이 하나.. 2023. 5. 9. 강화 학습 5.Multi-Armed Bandit (MAB)Problem 서론 이전 장에서 RL 및 여러 RL 알고리즘의 기본 개념과 RL 문제를 MDP(Markov Decision Process)로 모델링하는 방법에 대해 배웠다. MDP를 해결하는 데 사용되는 다양한 모델 기반(model-based) 및 모델 없는(model-free) 알고리즘도 보았다. 이제, RL의 고전적인 문제 중 하나인 MAB(Multi-Armed Bandit) 문제를 볼 것이다. MDP는 일련의 상태(state)와 행동(action)의 시퀀스를 관찰하고, 각 시점에서의 보상(reward)을 최대화하기 위한 최적의 정책(policy)을 찾는 문제로 상태와 행동의 시퀀스를 고려하여 최적의 정책을 찾는 것이 목표이다. 반면, MAB 문제에서는 여러 개의 선택(arm) 중에서 최적의 선택을 찾는 것이 목표.. 2023. 4. 25. 이전 1 2 3 4 5 6 다음 반응형