본문 바로가기
반응형

전체 글96

I/O Systems and Operations 이번에는 입출력 시스템&입출력 작업에 대해 알아볼 것이다. 다음과 같은 순서로 구성된다. An Overview of I/O Subsystem and Operations Stream Model: I/O functions, Standard streams Buffering: Block buffering vs. Line buffering vs. Unbuffered Pipes File I/O: File pointer, File Attributes Device I/O: Device Drivers, Block devices vs. Charater devices vs. Network devices I/O (Input/Output) 입출력은 컴퓨터의 주요 역할이다. 다른 작업인 컴퓨팅/처리는 부차적인 역할이다. 컴퓨터 .. 2021. 11. 29.
Backtracking Algorithm Design Method (백트래킹 알고리즘) 이번에는 백트래킹 알고리즘에 대해 알아보자. 이 글에서 알아볼 것은 다음과 같다. 백트래킹 기술 설명 백트래킹 기법이 문제 해결에 적절한 접근 방식인지 판단 주어진 문제에 대한 상태 공간 트리 정의 주어진 문제에 대한 상태 공간 트리의 노드가 유망(promising)하거나 비유망(non-promising)한 경우 정의 상태 공간 트리를 제거하는 알고리즘 생성 주어진 문제를 해결하기 위해 백트래킹 기법을 적용하는 알고리즘 생성 여기서 상태 공간 트리(state-space-tree)란 문제 해결의 중간 상태를 각각 한 노드로 나타낸 트리이다. ※ P, NP Problem 백트래킹을 살펴보기 전에 P, NP에 대해 간단히 짚고 넘어가자. 이제 막 알고리즘에 대해 배우고 있는 입장에서 명확히 이해하기 어려운 개.. 2021. 11. 22.
OS Structures & Linux Overview 저번에는 OS에 대해 알아봤다면 이번에는 '어떻게 OS를 설계하고 구현하는지'와 'OS의 내부 구성 방법'에 대해 알아볼 것이다. 그리고 OS 중 Linux에 대해서도 알아보자. OS Design and Implementation 일단 OS를 설계하고 구현하는데 있어서 최선/절대적인 답은 없다. 그러나 일부 접근 방식은 성공적인 것으로 이미 입증되었다. 그리고 서로 다른 OS의 내부 구조는 매우 다양할 수 있다. 그래서 우리는 목표 및 사양을 정의하여 설계를 시작해야 한다. 왜냐하면 하드웨어나 시스템의 유형의 선택에 영향을 받기 때문이다. 설계 요구사항을 특정할 때, 다음과 같은 사항들이 고려될 수 있을 것이다. User goals: OS는 사용하기 쉽고, 배우기 쉽고, 신뢰할 수 있고, 안전하고, 빨라.. 2021. 11. 12.
Greedy Algorithm Design Pattern 2(탐욕 알고리즘) 이전 게시글에 이어서 Greedy Algorithm(탐욕 알고리즘, GA)의 또 하나의 예시인 허프만 이진 코드 트리(Huffman Binary Code Tree)에 대해 알아보자. 그리고 헷갈릴 수 있는 Dynamic programming(DP)과 GA의 차이점에 대해서도 살펴보자. Huffman Binary Code Tree 해당 알고리즘은 데이터 파일(텍스트, 오디오, 이미지 등)을 효율적으로 인코딩할 때 사용된다. 즉 최대한 압축률을 크게 하는 것이 목적이다. 우선 파일을 어떤 방식으로 나타내는지 부터 알아야겠다. 파일을 나타내는 일반적인 방법은 이진 코드(bit)를 사용하는 것이며 문자는 고유한 코드 워드(이진 문자열)로 표시된다. Type of Binary Code 여기서 이진 코드의 유형을 .. 2021. 11. 8.
반응형