본문 바로가기

study-knou

(16)
병행 프로세스 2 어떠한 작업을 병행 프로세스로 구현할 경우 각각의 프로세스들이 완전히 독립적으로 동작함으로써 단지 실행 성능을 높이고자 하는 경우도 가능하겠지만, 일반적으로는 병행 실행되는 프로세스들이 상호협력하며 진행된다. 생산자/소비자 문제, 판독기/기록기 문제의 예를 통해 상호협력 프로세스의 일반적 구현 방법을 살펴보고, 병행 프로세스 사이의 통신을 위한 방법에 대하여 논리적 측면에서 살펴본다. 목표 세마포어를 이용하여 생산자/소비자 문제를 해결할 수 있다. 세마포어를 이용하여 판독기/기록기 문제를 해결할 수 있다. 프로세스 사이의 통신을 위한 논리적 구조에 대해 설명할 수 있다. 프로세스의 상호 협력 병행 프로세스들의 상호 협력 공통작업을 수행하기 위해 서로 협동하는 경우 생산자/소비자 문제 생산자 -> 버퍼 -..
병행 프로세스 1 병행 프로세스는 여러 개의 프로세스가 동시에 병행하여 실행되는 것을 의미한다. 최근 많은 응용에서 단순한 순차 처리가 아닌 병행 처리를 필요로 하고 있다. 일례로 멀티미디어 응용에서는 여러 종류의 미디어가 동시에 재생되어야 하며, 이를 위한 처리가 병행하여 이루어져야 한다. 특히 이처럼 병행 처리되는 프로세스가 서로 유기적으로 상호작용하며 동작하기 위해서는 해결해야 할 많은 문제가 발생한다. 병행 프로세스의 기본 개념과 함께, 병행 프로세스의 처리과정에서 이슈가 되는 자원의 공유, 동기화 등을 위해 제공되는 장치들에 대하여 살펴본다. 학습목표 병행성의 개념을 설명할 수 있다. 병행 프로세스의 실행으로 인해 발생할 수 있는 자원의 공유, 동기화 등의 문제를 설명할 수 있다. Test-and-Set과 세마포..
스케줄링 알고리즘 개요 운영체제는 실행할 준비가 된 프로세스들이 적절히 CPU를 배정받아 효율적으로 작업을 처리할 수 있도록 관리해야 하고, 이를 위해서 다양한 스케줄링 알고리즘을 활용한다. 스케줄링 알고리즘의 성능 평가 기준과 함께 여러 가지 스케줄링 기법에 대하여 살펴본다. 스케줄링 성능 평가 기준 평균 대기 시간 평균 반환 시간 - 스케줄링 알고리즘 FCFS 스케줄링 (first-come first-served) 비선점 스케줄링 알고리즘 준비 큐에 도착한 순서에 따라 디스패치 장점 가장 간단한 스케줄링 기법 단점 짧은 프로세스가 긴 프로세스를 기다리거나, 중요한 프로세스가 나중에 수행될 수 있음 프로세스들의 도착 순서에 따라 평균 반환시간이 크게 변함 SJF 스케줄링 (Shortestd Job First) 비선점 스..
탐색 알고리즘(2) 학습개요 균형 탐색 트리로서 흑적 트리와 B-트리를 이용하는 탐색 방법에 대해서 학습한다. 또한 삽입, 삭제, 탐색 연산을 기본적으로 상수 시간에 수행할 수 있는 해싱 기법에 대해서 살펴본다. 학습목표 흑적 트리의 개념, 동작, 그리고 성능과 특징을 이해할 수 있다. B-트리의 개념, 동작, 그리고 성능과 특징을 이해할 수 있다. 해싱의 개념과 해시 함수 및 충돌 해결 방법의 종류와 특징을 이해할 수 있다. 흑적 트리? 이진 탐색 트리, 균형 탐색 트리 1. 모든 노드는 흑색이거나 적색이다. 2. 루트 노드와 리프 노드는 흑색이다. 모든 리프 노드는 Null 노드이다. 3. 적색 노드의 부모 노드는 항상 흑색이다. 적색 노드가 연달아 나타날 수 없다. 4. 임의의 노드로부터 리프 노드까지의 경로 상에는 ..
정렬 알고리즘 (2) - 개요 기본적인 비교 기반 정렬 알고리즘에 이어서, 향상된 성능을 갖는 합병 정렬, 퀵 정렬, 그리고 힙 정렬에 대해서 살펴본다. 또한 비교 기반의 정렬 알고리즘이 아닌 데이터의 분포 특성을 이용하는 정렬 알고리즘으로서 계수 정렬과 기수 정렬에 대해서 학습한다. 학습목표 합병 정렬과 퀵 정렬의 동작과 특징을 이해할 수 있다. 힙 정렬의 개념, 동작, 그리고 성능과 특징을 이해할 수 있다. 비교 기반 정렬 알고리즘의 하한의 개념을 이해할 수 있다. 계수 정렬과 기수 정렬의 개념, 동작, 성능 그리고 특징을 이해할 수 있다. 합병 정렬과 퀵 정렬 합병 정렬 최선, 최악, 평균 수행 시간이 모두 O(nlogn) 안정적인 정렬 알고리즘 제자리 정렬 알고리즘이 아님 데이터가 늘어나면 늘어날 수록 추가적인 저장 ..
정렬 알고리즘 (1) 정렬의 기본 개념과 관련 용어를 살펴보고, 정렬할 원소의 개수가 작을 때 간편하게 사용될 수 있는 간단하고 기본적인 성능의 비교 기반의 내부 정렬 알고리즘인 버블 정렬, 선택 정렬, 삽입 정렬, 셸 정렬에 대해서 학습한다. 학습목표 정렬과 관련된 용어 및 개념을 이해할 수 있다. 버블 정렬의 개념, 동작, 그리고 성능과 특징을 이해할 수 있다. 삽입 정렬의 개념, 동작, 그리고 성능과 특징을 이해할 수 있다. 선택 정렬의 개념, 동작, 그리고 성능과 특징을 이해할 수 있다. 셸 정렬의 개념, 동작, 그리고 성능과 특징을 이해할 수 있다. 정렬? 여러 데이터로 구성된 리스트에서 값의 크기 순서에 따라 데이터를 재배치하는 것 내부 정렬 - 모든 데이터 주기억장치에 저장 후 정렬 외부 정렬 - 외부 기억 장치..
욕심쟁이 알고리즘 (2) 대표적인 알고리즘 설계기법 중 하나인 욕심쟁이 방법을 적용한 데이크스트라 알고리즘, 작업 스케줄링 문제, 작업 선택 문제, 그리고 허프만 코딩의 원리와 동작, 그리고 성능과 특징을 학습한다. 단일 출발점 최단 경로를 구하는 데이크스트라 알고리즘의 개념, 동작, 그리고 성능과 특징을 이해할 수 있다. 작업 스케줄링 문제의 개념, 동작, 그리고 성능을 이해할 수 있다. 작업 선택 문제의 개념, 동작, 그리고 성능을 이해할 수 있다. 허프만 코딩의 개념, 동작, 그리고 성능과 특징을 이해할 수 있다. 데이크스트라 알고리즘 특정한 하나의 정점에서 다른 모든 정점으로의 최단 경로 욕심쟁이 방법 O(|V|^2) 음의 가중치를 갖는 간선이 없다고 가정 거리 d[v] 출발점에서 현재까지 선택된 정점 집합 S를 경유하여..
욕심쟁이 알고리즘 (1) 대표적인 알고리즘 설계기법 중 하나인 욕심쟁이 방법의 개념과 이를 적용한 동전 거스름돈 문제, 배낭 문제, 그리고 최소 신장 트리를 구하는 알고리즘의 원리와 동작, 그리고 성능과 특징에 대해서 학습한다. 욕심쟁이 방법의 원리 해를 구하는 일련의 선택 단계마다 전후 단계의 선택과는 무관하게 해당 단계에서 가장 최선이라고 여겨지는 국부적인 최적해를 선택함으로써 전체적인 최적해를 구하는 방법 greedy -> 탐용적 방법, 탐욕 알고리즘, 그리디 알고리즘 동적 프로그래밍 방법 vs 욕심쟁이 방법 최적화 문제 해결에 주로 사용 최적성의 원리가 적용된 방법 동적 프로그래밍 소문제의 여러 최적해로부터 다음 크기의 문제에 대한 최적해가 결정 -> 항상 전체적인 최적해를 구함 욕심쟁이 소문제(각 단계)에 대해서 하나의..

728x90