음 아마 비둘기보단 똑똑할꺼야

2018/05/15 - [방송통신대학교/컴퓨터과학과 [3학년 1학기]] - [데이터베이스] 5강 정규화 기초

2018/03/21 - [방송통신대학교/컴퓨터과학과 [3학년 1학기]] - [데이터베이스] 4강 데이터베이스 언어

2018/03/19 - [방송통신대학교/컴퓨터과학과 [3학년 1학기]] - [데이터베이스] 3강 관계형 모델

2018/03/16 - [방송통신대학교/컴퓨터과학과 [3학년 1학기]] - [데이터베이스] 2강 데이터베이스 모델링

2018/03/16 - [방송통신대학교/컴퓨터과학과 [3학년 1학기]] - [데이터베이스] 1강 데이터베이스의 이해

1. 데이터베이스 언어의 개념

1) 데이터베이스 언어의 필요

DBMS 의 역할은 데이터의 관리와 데이터의 사용을 분리 시키는 역할을 한다.
DBMS에게 우리가 원하는것을 부탁하고 청원해야 우리가 원하는것을 얻을 수 있다.
DBMS에게 요청할때 사용하는 도구가 데이터베이스 언어이다.

2) SQL의 개요

SQL(Structured Query Language)은 관계대수에 기초하여 관계형 데이터베이스의 데이터를 관리하기 위해 설계된 언어
1986년 ANSI, 1987년 ISO에서 표준으로 제정

특징

    - 비절차적 언어, 필요한 데이터만 기술
    - 인간의 언어와 매우 유사하고 간단, 명료

3) SQL의 구분

3-1) 데이터 정의 언어 (DDL: Data Definition Language)
    - 데이터베이스 내의 객체를 생성 및 삭제하고 그 구조를 조작하는 명령어의 집합
    - 데이터가 준수해야 하는 제약조건을 기술
    - CREATE, ALTER, DROP 문 등

3-2) 데이터 조작 언어 (DML: Data Mainpulation Language)
    - DDL에 의해 정의된 테이블에 데이터를 조작하는 명령어의 집합
    - 데이터에 대한 CRUD(생성, 검색, 삭제, 수정) 명령을 포함
    - INSERT, UPDATE, DELETE, SELECT 문 등

4) 데이터 타입의 개념

컬럼이 가질 수 있는 값의 범위 즉 도메인을 결정
기본 데이터타입
    - 문자: CHAR(n), VARCHAR(n), CLOB [n은 길이를 의미함]
    - 숫자: INT, FLOAT, DOUBLE, DECIMAL(m,n) [DECIMAL은 정수(m), 소수(n)을 지정할 수 있음]
    - 날짜/시간: DATE, TIME, DATETIME, TIMESTAMP


2. 데이터의 정의

1) 테이블 생성
    새로운 2차원 형태의 테이블을 생성
    구문형식
        CREATE TABLE <테이블이름> ( <컬럼이름1> <데이터타입1> [제약조검1] ... ]

(그림 테이블 생성 질의의 사용)


2) 테이블 수정
    테이블에 새로운 컬럼을 추가, 삭제 및 수정하여 구조를 변경
    구문형식
        컬럼추가: ALTER TABLE <테이블이름> ADD <컬럼이름><데이터타입><제약조건>
        컬럼삭제: ALTER TABLE <테이블이름> DROP <컬럼이름>
        컬럼수정: ALTER TABLE <테이블이름> CHANGE <컬럼이름><데이터타입>
(그림 테이블 수정 질의의 사용1) 컬럼 추가


3) 테이블 삭제
    테이블을 데이터베이스에서 삭제
    구문형식
        DROP TABLE <테이블이름>


3. 데이터의 조작

1) 데이터 삽입

1-1) INSERT문
    - 테이블에 새로운 레코드를 삽입
    - 모든 속성 또는 부분 속성에 대한 속성값을 삽입
    구문형식
        INSERT INTO <테이블이름> VALUES ( v1, v2 ... Vn)
        INSERT INTO <테이블이름>(컬럼1, 컬럼2, ... 컬럼n) VALUES (V1, V2, ... Vn)
        VALUES 에 문자 입력시 값의 양쪽에 작은 따옴표를 붙여야하고 숫자의 경우 붙이지 않아도 된다.

2) 데이터 수정

2-1) UPDATE문
    - 조건을 만족하는 레코드의 특정 컬럼을 수정
    구문형식
        UPDATE <테이블이름> SET <컬럼1> = <값> [, <컬럼2> = <값2] , <컬럼3> = <값3>] <WHERE> 조건

3) 데이터 삭제

3-1) DELETE문
    - 조건을 만족하는 레코드를 삭제
    구문형식
        DELETE FROM <테이블이름> <WHERE> 조건

4) 데이터 검색

4-1) 기본 SELECT 질의
    - 테이블에서 조건을 만족하는 전체 또는 특정 레코드를 검색
    - 한 개 또는 그 이상의 테이블에서 데이터 검색 가능

JOIN문 사용
    SELECT 이름, 교수.학과명, 캠퍼스 FROM 교수, 학과 WHERE 교수.학과명 = 학과.학과명

4-2) 집계함수를 사용한 SELECT 질의
    - 복수개의 레코드에 존재하는 특정 컬럼값에 집계함수를 통해 다양한 계산을 수행할 수 있는 기능
    - 집계함수의 종류
        COUNT, SUM, AVG, MAX, MIN

4-3) 그룹질의
    - 특정 기준으로 레코드를 그룹화하고 각 레코드 그룹에 대해 집계함수를 적용하는 질의
    구문형식
        SELECT 질의 GROUP BY 컬럼
            - 주의: 출력되는 컬럼에 그룹의 기준과 집계 함수 이외의 어떠한 값도 포함될 수 없음
        SELECT 학과명, COUNT(과목명) AS 개설_강의수 FROM 과목 GROUP BY 학과명

4-4) 중첩질의
    - SELECT문 내부에서 독립적으로 실행 가능한 또 다른 SELECT문이 내포되어 있는 질의
    종류
        - FROM 절에서의 중첩 질의 활용
            FROM절에서의 결과집합을 SELECT에서 재검색
        - WHERE 절에서의 중첩 질의 활용
            WHERE절에서의 결과 집합을 활용하여 외부 질의에서 레코드의 출력 여부를 결정
            IN, NOT IN, EXISTS, NOT EXSISTS 사용

4-5) 뷰의 정의


    - 하나 이상의 원본테이블로부터 유도되어 일반 테이블처럼 조작 할 수 있는 가상 테이블
    - 물리적으로 저장되지 않음
구문형식
    CREATE VIEW 뷰이름 AS [질의]


1. 알고리즘 기본개념

1) 알고리즘 생성단계
    설계 > 표현/기술 > 정확성 검증 > 효율성 분석

2. 기본 자료구조

1) 알고리즘에서 자료구조는?

1-1) 자료구조
    - 컴퓨터 기억공간 내에 자료를 표현하고 조직화 하는 방법
    - 프로그램 = 자료구조 + 알고리즘
    - 자료구조에 대한 고려 없는 효율적인 알고리즘의 선택, 또는 알고리즘에 대한 고려 없는 효율적인 자료구조의 선택은 무의미

기본 자료구조 =

배열, 연결리스트 , 스택 , 큐 , 트리 , 그래프

선형 자료구조 : 배열 , 연결리스트 , 스택 , 큐
    ㄴ 데이터에 순서가 있다.
비선형 자료구조 : 트리, 그래프
    ㄴ 데이터에 순서가 없다.


2) 배열

정의: 같은 자료형을 갖는 여러 개의 데이터를 하나의 변수에 저장해놓고 각각의 원소에 접근할 때에는 인덱스 첨자를 사용해서 접근하는 자료구조

특징: 논리적인 순서와 물리적인 순서가 같다.

단점: 삽입과 삭제가 발생하게되면 순서를 유지하기 위해서 자리의 이동이 불가피하다.

장점: 배열은 인덱스를 가지고 해당 원소에 직접접근하는 특징을 가지고 있다. 배열은 데이터가 어디에 저장되어있든지 어디로든 접근의 시간이 동일하다.

3) 연결리스트

하나의 원소는 노드라고 한다. 데이터가 들어가는 곳을 필드라고 한다.
하나의 노드는 하나의 데이터필드와 하나의 링크필드로 표현된다.

특징: 논리적순서와 물리적인순서가 같지 않다. 링크필드의 의미는 다음 노드의 메모리 주소값을 저장하고 있다.

장점: 삽입과 삭제가 간단하다.

단점: 특정 데이터를 찾아갈때는 처음부터 찾아가야 한다는 단점이 있다.


2-1,3-1) 배열과 연결리스트의 종류

배열 : 1차원 2차원 다차원배열

연결리스트: 단일 연결, 단일 원형 연결, 이중 연결, 이중 원형 연결

주어진 문제에 따라 자료구조를 선택해야 함.

접근을 빨리 하고싶으면 배열을 쓰는게 좋고 데이터의 접근보다는 데이터의 삽입과 삭제가 많다면 연결리스트 사용이 효과적일 수 있다.


4) 스택

정의: LIFO (Last In First Out) 후입선출 입구와 출구가 하나밖에 없는 구조

top : 스택에 데이터가 어디까지 쌓여져 있는가를 알림.

push: 삽입하는 연산

pop: 삭제하는 연산

데이터가 삽입 삭제때마다 top이 가리키는 위치가 달라짐.

5) 큐

정의: FIFO (First In FIrst Out) 선입선출 입구와 출구가 정방향

front: 삭제와 관련

rear: 삽입과 관련

삽입이 이뤄질경우 rear가 가리키는 값이 바뀜.

삭제가 이뤄질경우 front가 가리키는 값이 바뀜.


6) 트리

정의: 하나 이상의 노드로 구성된 유한 집합 T

조건1: T의 원소 가운데 단 하나의 루트 노드가 존재
조건2: 루트 노드를 제외한 나머지 노드는 n개의 서로 분리된 부분집합 T1, T2, TN(서브트리) 으로 나누어진다

주요 용어:

차수

리프노드(단말노드)

부모,자식,형제 노드

조상(선조) 후손(자손)

레벨 높이 깊이

6-1) 이진트리

정의: 각 노드의 차수가 2이하인 순서 트리

특성:
    - 레발 i에서 최대 노드의 개수 = 2의 i승
    - 높이 h에서 이진 트리의 최대 노드의 개수 = 2의 h승 - 1
    - 단말 노드(자식이 없는 노드)의 수 n0 = 차수가 2인 노드의 수에 +1 하면 된다. 
        n0 = n2 + 1

종류:
    - 포화 이진트리 : 높이 h 까지 중간에 빈 자리 없이 꽉 차있는 트리
    - 전 이진트리: 각 노드의 차수 = 0 이거나 2. 전 노드의 차수가 1인 경우가 없는 트리
    - 완전 이진트리: 노드의 레벨의 마지막 레벨 전까지가 포화 이진트리이고 마지막 레벨의 노드들이 왼쪽에서부터 마지막까지 중간에 빠짐없이 채워져있는 트리
    - 균형 이진트리: 왼쪽 서브트리와 오른쪽 서브트리의 노드레벨 차이가 1 이내인 트리

구현:
      * 배열을 이용하는 방법

* 연결리스트를 이용하는 방법

7) 그래프

정의: 그래프 G=(V,E)
    V: 정점의 집합, E: 간선의 집합

간선이 방향성이 있느냐에 따라 무방향과 방향그래프로 나뉜다.

각 정점을 잇는 선이 간선이다.

간선들에 값을 줄 수 있다. 비용이라 칭함. 간선들에 비용이 있는 그래프를 가중그래프(가중치그래프)라 한다.

7-1) 무방향 그래프

간선의 표현: (1,2) = (2,1)

그래프 표현: V(G) = { 1,2,3,4,5 } , E(G) = { (1,2),(1,3),(2,4),(3,5) }

7-2) 방향 그래프

간선의 표현: <1,2>


주요 용어:

인접,부수, 부분그래프, 경로, 경로의 길이, 차수(방향그래프 > 진입 차수 , 진출 차수), 단순 경로, 사이클, 루프, 연결, 강력 연결

구현

1) 인접 행렬

2) 인접 리스트

01. 논리연산

2진 디지털 시스템에서 입출력 관계를 표현하는 방법
    - 그래프나 진리표로 표시
    - 논리함수로 표시
        * 입력에 따라 변수가 어떻게 변하는가를 나타내는 함수로 표현
        * 입력이 2진 논리값이므로 논리함수 (F = X)로 나타낸다.

1) 논리연산의 개요

2) 논리집합과 논리연산

2-1) 논리집합(부울집합)
    - 집합이 0(거짓)과 1(참)으로만 구성된 집합 {0,1}
2-2) 논리연산(부울연산)
    - 두 개의 이산값에 적용되는 연산
2-3) 논리집합 {0,1}에 대한 세 가지 논리연산
    - AND 연산
    - OR 연산
    - NOT 연산


 

02. 논리게이트

1) 기본 논리게이트

AND, OR, NOT 게이트

1-1) AND 게이트

F = XY (X Y 사이의 도트 생략)
입력은 왼쪽에서 출력은 오른쪽으로
(그림 AND게이트) 반달모양으로 표현한다.


 

1-2) OR 게이트

F = X + Y (반달에서 입력쪽이 움푹 들어가게 표현한다.)
논리합은 입력으로 모두 거짓이 들어왔을때만 거짓이고 참이 하나만 있어도 출력이 참이다.

1-3) NOT 게이트

F = X (오버바) (세모에 출력에 조그마한 원이 있다.)
(그림 NOT 게이트)



2) NAND 게이트와 NOR 게이트

2-1) NAND 게이트

F = XY(오버바(NOT)) 
AND 게이트의 반대 참과 참이 입력되었을때는 거짓이고 나머지는 전부 1
(그림 NAND게이트)

2-2) NOR 게이트

F = X+Y(오버바(NOT)) 
(그림 NOR게이트)

3) XOR 게이트와 XNOR 게이트

X = EXCLUSIVE

3-1) XOR 게이트

서로 다른 입력이 들어올때만 출력에 참이 된다.
(그림 XOR게이트)

3-2) XNOR 게이트

서로 같은것이 들어올때만 1이되고 다르면 0이된다.
(그림 XNOR게이트)


03. 부울대수(Boolean Algebra)

1) 부울대수의 개요

부울대수: 0과 1의 값을 갖는 논리변수와 논리연산을 다루는 대수
부울함수: 논리변수의 상호관계를 나타내기 위해 부울변수, 부울연산기호, 괄호 및 등호 등으로 나타내는 대수적 표현

1-1) 부울함수와 논리회로도

- 부울함수는 논리 게이트들로 구성되는 논리회로도 작성 가능

1-2) 부울함수와 진리표

- 진리표(truth table)
    * 논리변수에 할당한 0과 1의 조합의 리스트

- 부울함수는 진리표로 나타낼 수 있다.

관계
    - 부울함수에 대한 진리표는 하나이다.
    - 그러나 동일 진리표를 만족하는 부울함수는 여러 개가 될 수 있다.
    - 따라서 동일 진리표에 대한 논리회로도는 여러 개가 될 수 있다.
        * 결론적으로 논리회로도는 단순해야 한다.
            (복잡하면 게이트 수, 게이트의 입력 수가 많아지므로 비효율적)
        * 따라서 부울함수의 단순화(간소화)가 필수

1-3) 부울함수의 간소화 필요성 

(그림 부울함수의간소화필요성)


왼쪽과 오른쪽 회로도는 동일한 진리표를 가진다.

① 부울함수의 간소화 방법

- 대수적인 방법
- 도표를 이용하는 방법
- 테이블을 이용한 방법 (입력변수가 많이 있을 때 알고리즘을 통한 간소화 ㅂ

2) 기본 공식

(그림 부울대수 간소 기본공식)

그림의 9번을 제외한 나머지는 왼쪽과 오른쪽이 대비되어있다. 이것이 쌍대정리라한다.

쌍대정리, 드모르간의 법칙이 가장 중요한 개념이다.


3) 부울함수의 대수적 간소화

3-1) 항 결합
(그림 항결합)

3-2) 간소화 예제
(그림 간소화예제)

프로세스 정의: 실행중인 프로그램

프로그램: 동작을 하지않는 정적,수동적개체
프로세스: 동작을 하는 능동적 개체

운영체제로부터 자원을 할당받아 동작

자원: CPU,메모리,입출력장치,파일 등
동작: cpu가 프로세스의 명령을 실행

사용자 및 시스템 프로세스가 존재


프로세스 관리자의 역할

프로세스를 생성 및 삭제
프로세스 실행을 위한 스케줄 결정
프로세스의 상태를 관리하며 상태 전이를 처리


프로세스의 상태

5-상태모델 

생성: 처음 작업이 시스템에 주어진 상태
준비: 실행 준비가 되어 CPU할당을 기다리는 상태
실행: 프로세스가 처리되는 상태
대기: 프로세스가 특정 자원을 할당받을 때까지 또는 I/O 작업이 끝날 때까지 작업이 보류되는 상태
종료: 모든 처리가 완료되어 사용자에게 반환되는 상태

디스패치: 준비 > 실행
할당시간만료(우선순위가 높은 프로세스가 왔을때): 실행 > 준비
이벤트대기 (다른자원이 필요로할때 EX)입출력을 받아야할때): 실행 > 대기
재개 조건 만족: 대기 > 준비


프로세스 제어 블록(PCB)

프로세스 제어 블록(Process Control Block, PCB)

프로스세의 관리를 위한 목적
프로세스의 정보를 보관
각 프로세스마다 존재
프로세스가 진행함에 따라 내용 변경

프로세스 상태, 번호(PID), 카운터(PC), 레지스터들, 메모리관리정보, 프로세스우선순위, 회계정보 등등


프로세스의 생성과 종료

프로세스 생성 작업

프로세스의 이름(번호,PID) 결정
준비 큐에 삽입
초기 우선순위 부여
프로세스제어블록(PCB) 생성 등

프로세스 생성 방법: 시스템 호출

하나의 프로세스가 프로세스 생성 시스템 호출을 통해 새로운 프로세스를 생성
예: fork()
호출하는 프로세스: 부모 프로세스
생성되는 프로세스: 자식 프로세스

[모든 프로세스는 부모자식관계로 표현할 수 있다(트리형)]

시스템프로세스와 사용자 프로세스 모두 부모 프로세스 가능

생성되는 프로세스의 자원

운영체제로부터 직접 얻는 경우
부모 프로세스 자원의 일부를 얻는 경우

자식 프로세스의 자원은 부모 프로세스의 자원으로 제한

과도한 자식 프로세스 생성에 따른 시스템 과부하 방지

프로세스 종료
    프로세스의 마지막 명령이 실행을 마치는 경우
    프로세스 종료 시스템 호출(EX: exit()) 을 통하는 경우
    프로세스 종료 후 부모 프로세스에게 실행결과를 되돌려 줌

프로세스 종료 시스템 호출
    부모에 의해서만 호출
    자식 프로세스가 할당된 자원의 사용을 초과할 때 혹은 더 이상 필요치 않을 때


쓰레드

프로세스와 쓰레드

전통적인 프로세스
    처리의 기본단위
    자원 소유의 단위(하나의 주소공간) 및 디스패칭의 단위(하나의 제어흐름)
    단일 프로세스 내에서 동ㅅ이처리 불가능 -> 쓰레드 등장

쓰레드(Thread)
    프로세스 내에서의 다중처리를 위해 제안된 개념
    하나의 프로세스 내에는 하나 이상의 쓰레드가 존재
    하나의 쓰레드 내에서는 하나의 실행점(PC)만 존재 (디스패칭의 단위)
    [하나의 쓰레드는 하나의 디스패칭]
    실행에 필요한 최소한의 정보만을 가지며, 자신이 속해 있는 프로세스의 실행환경을 공유

다중쓰레드의 장점
    멀티 CPU 혹은 멀티코어 시스템에서는 병렬처리 가능
    처리 속도 별로 쓰레드가 나눠진 경우 효율적인 처리 가능


스케줄링

스케줄링 단계
    상위단계스케줄링: 시스템에 들어오는 작업들을 준비 큐에 넣는 행위
    하위단계 스케줄링 : 준비큐와 CPU 간에 실행중인 작업들
    중간단계 스케줄링: 일시중지된 작업들

상위단계
    시스템에 들어오는 작업들을 선택하여 프로세스를 생성한 후 프로세스 준비 큐에 전달
    선택 기준: 시스템의 자원을 효율적으로 이용할 수 있도록 하는 것
    입출력(I/O) 중심 작업과 연산 중심 작업을 균형있게 선택

하위단계
    사용가능한 CPU를 준비상태의 어느 프로세스에게 배당할지를 결정
    CPU를 배당받은 프로세스는 결국 실행상태가 되어 프로세스가 처리됨
    수행 주체: 디스패처(dispatcher)

중간단계
    프로세스를 일시적으로 메모리에서 제거하여 중지시키거나 다시 활성화시킴
    시스템에 대한 단기적인 부하를 조절

스케줄링의 기본 목표
    공정성: 모든 프로세스가 적정 수준에서 cpu 작업을 할 수 있게 함
    균형: 시스템의 자원들이 충분히 활용될 수 있게 함

일괄처리 운영체제
    처리량의 극대화, 반환시간의 최소화, CPU활용의 극대화

대화형 운영체제
    빠른 응답시간, 과다 대기시간 방지

실시간 운영체제
    처리 기한을 맞춤

스케줄링 정책

선점 스케줄링 정책
    진행중인 프로세스에 인터럽트를 걸고 다른 프로세스에 CPU를 할당하는 스케줄링 전략
    높은 우선순위의 프로세스를 긴급하게 처리하는 경우에 유용
    대화식 시분할 시스템에서 빠른 응답시간을 유지하는데 유용
    단점: 문맥 교환에 따른 오버헤드 발생
        문맥: CPU의 모든 레지스터와 기타 운영체제에 따라 요구되는 프로세스의 상태
        문맥교환: CPU가 현재 실행하고 있는 프로세스의 문맥을 PCB에 저장하고, 다음 프로세스의 PCB로부터 문맥을 복원하는 작업

비선점 스케줄링 정책
    프로세스가 CPU를 할당받아 실행이 시작되면 작업 자체가 I/O 인터럽트를 걸거나 작업을 종료할 때까지 실행상태에 있게 됨.
    모든 프로세스가 공정하게 순서에 따라 실행됨 > 응답시간 예측 가능
    단점: 짧은 프로세스가 긴 프로세스를 기다리게 될 수 있음

1. 운영체제의 개요

cpu의 동작모드

1) 슈퍼바이저모드(커널모드)
운영체제의 커널이 동작되는 모드
하드웨어를 직접 제어할 수 있는 cpu 명령어 사용 가능

2) 보호모드(사용자모드)
응용프로그램이 동작되는모드
cpu명령어 사용 불가능

 

시스템호출이란?
응용프로그램이 운영체제에게 서비스를 요청하는 메커니즘

시스템호출 > 보호모드에서 슈퍼바이저모드로 변경 > 커널동작 > 하드웨어 제어

 

커널

  • 운영체제의 핵심 요소
  • 응용프로그램과 하드웨서 수준의 처리 사이의 가교 역할

 1) 일체형커널(monolithic kernel)
     운영체제의 모든 서비스가 커널 내에 포함됨
     장점 : 커널 내부 요소들이 서로 효율적으로 상호작용을 할 수 있음
     단점 : 한 요소에 있는 오류로 인해 시스템 전체에 장애가 발생할 수 있음
     예) UNIX, Linux

 2) 마이크로 커널 (microkernel)
     운영체제의 대부분의 요소들을 커널 외부로분리
     커널내에는 메모리 관리, 멀티태스킹, 프로세스 간 통신(PC)등 최소한의 요소들만 남김
     장점: 새로운 서비스를 추가하여 운영체제를 확장하기 쉬움, 유지보수가 용이하며 안정성이 우수함
     단점: 커널 외부 요소들 사이는 IPC(프로세스간통신)를 통해야만 하므로 성능 저하가 발생함

 

필요에따라 그때그때 맞는 커널을 사용해 운영체제를 개발하는게 필요함.


 

2. 운영체제의 구성

 1) 프로세스 관리자
     프로세스를 생성,삭제, CPU할당을 위한 스케줄 결정
     파일로 존재하던 프로그램을 메모리에 올리고 CPU 스케줄링

 2) 메모리 관리자
     메모리 공간에 대한 요구의 유효성 체크
     메모리 할당 및 회수
     메모리 공간 보호

 3) 장치 관리자
     컴퓨터 시스템의 모든 장치를 관리
     시스템의 장치를 할당, 작동 시작, 반환

 4) 파일 관리자
      컴퓨터 시스템의 모든 파일을 관리
      파일의 접근 제한 관리
      파일을 열어 자원을 할당하거나 파일을 닫아 자원을 회수

 

3. 운영체제의 유형

   응답시간의 속도, 데이터 입력 방식에 따라 분류된다.

   1) 일괄처리(batch processing) 운영체제
        작업을 모아서 처리
        사용자와 상호작용 없이 순차적으로 실행
        효율성 평가: 처리량(주어진 시간 안에 처리된 작업의 수), 반환시간(작업의 생성 시점부터 종료 시점까지의 소요시간)
        ex) OMR

   2) 대화형(interactive) 운영체제 (A > B > C > D > A > B > C > D >... > ... )
        시분할 운영체제라고도 함
        일괄처리 운영체제보다 빠르지만 실시간 운영체제보다는 느린 응답시간 (요청한 시점부터 반응이 시작되는 시점까지의 소요시간)
        이용자에게 즉각적인 피드백 제공

   3) 실시간(real-time) 운영체제)
        가장 빠른 응답시간
        처리의 결과가 현재의 결정에 영향을 주는 환경에서 사용
        우주선 비행 시스템, 미사일 제어, 증권거래 관리 시스템, 은행 입출금 시스템 등에 사용

   4) 하이브리드 운영체제
        일괄처리 운영체제와 대화형 운영체제의 결합
        이용자는 터미널을 통해 접속하고 빠른 응답시간을 얻음
        대화형 작업이 많지 않을 경우 백그라운드에서 배치 프로그램 실행 (대부분의 운영체제)


4. 운영체제의 역사


© 2015 Jundol in 음 아마 비둘기보단 똑똑할꺼야
Designed by DH / Powered by Tistory
180 / 51 / 117,636