<관계 데이터베이스의 Relation 구조>
학번
|
이름
|
학년
|
학과
|
20141
|
전교생1
|
4
|
무엇할과
|
20142
|
전교생2
|
4
|
무엇할과
|
• 릴레이션 (relation)
같은 성격의 데이터들의 집합을 의미. 흔히 테이블이라고 말하는 용어와 같은 의미로 이론적인 용어.
릴레이션은 튜플과 에트리뷰트로 데이터를 정렬하여 관리한다.
• 튜플 (tuple) (노란색)
릴레이션의 각 행을 의미. 흔히 일반적인 용어로 레코드(record)와 로우(row)와 같은 의미로 사용된다.
• 에트리뷰트(attribute) (빨간색)
릴레이션에서 이름을 가진 하나의 열을 말한다. 흔히 일반적인 용어로 칼럼(column)과 같은 의미로 사용된다.
• 디그리(degree)
에트리뷰트의 수를 말한다.
• 카디널러티(cardinality)
튜플들의 수를 말한다.
• 릴레이션의 특징
- 한 릴레이션에 정의된 튜플들은 모두 다르다.
- 한 릴레이션에 정의된 튜플들은 순서에 무관하다.
- 튜플들은 시간에 따라 변한다.
- 릴레이션 스키마를 구성하는 에트리뷰트의 값은 동일해도 된다.
- 에트리뷰트는 더 이상 쪼갤 수 없는 원자값으로 구성된다.
- 릴레이션을 구성하는 튜플을 유일하게 식별하기 위한 속성들의 부분집합을 키(Key)로 설정한다.
<SQL의 분류>
• DDL(데이터 정의어)
1. SCHEMA, DOMAIN, TABLE, VIEW, INDEX를 정의하거나 변경 또는 삭제할 때 사용하는 언어이다.
2. 데이터베이스 관리자나 데이터베이스 설계자가 사용한다.
3. 데이터 정의어(DDL)의 3가지 유형
- CREATE SCHEMA, DOMAIN, TABLE, VIEW, INDEX를 정의함 |
- ALTER TABLE에 대한 정의를 변경하는 데 사용함 |
- DROP SCHEMA, DOMAIN, TABLE, VIEW, INDEX를 삭제함 |
• DML(데이터 조작어)
1. 데이터베이스 사용자가 응용 프로그램이나 질의어를 통하여 저장된 데이터를 실질적으로 처리하는 데 사용하는 언어이다.
2. 데이터베이스 사용자와 데이터베이스 관리 시스템 간의 인터페이스를 제공한다.
3. 데이터 조작어(DML)의 4가지 유형
- SELECT 테이블에서 조건에 맞는 튜플을 검색함
- INSERT 테이블에 새로운 튜플을 삽입함
- DELETE 테이블에서 조건에 맞는 튜플을 삭제함
- UPDATE 테이블에서 조건에 맞는 튜플의 내용을 변경함
• DCL(데이터 제어어)
1. 데이터의 보안, 무결성, 데이터 회복, 병행수행 제어등을 정의하는 데 사용하는 언어이다.
2. 데이터베이스 관리자가 데이터 관리를 목적으로 사용한다.
3. 데이터 제어어(DCL)의 종류
- COMMIT
명령에 의해 수행된 결과를 실제 물리적 디스크로 저
장하고, 데이터베이스 조작 작업이 정상적으로 완료
되었음을 관리자에게 알려줌
- ROLLBACK
데이터베이스 조작 작업이 비정상적으로 종료되었을
때 원래의 상태로 복구함
- GRANT
데이터베이스 사용자에게 사용 권한을 부여함
- REVOKE
데이터베이스 사용자의 사용 권한을 취소함
<수식의 표기법>
• 전위 표기법(Prefix) : 연산자 → Left → Right, +AB
• 중위 표기법(Infix) : Left → 연산자 → Right, A+B
• 후위 표기법(Postfix) : Left → Right → 연산자, AB+
• 중위 표기법(Infix) : Left → 연산자 → Right, A+B
• 후위 표기법(Postfix) : Left → Right → 연산자, AB+
<스키마의 3계층>
- 외부 스키마(External Schema) = 서브 스키마 = 사용자 뷰(View)
• 사용자나 응용 프로그래머가 각 개인의 입장에서 필요로 하는 데이터베이스의 논리적 구조를 정의한다.
• 전체 데이터베이스의 한 논리적인 부분으로 볼 수 있으므로 서브 스키마(Subschema)라고도 한다.
• 하나의 데이터베이스 시스템에는 여러 개의 외부 스키마가 존재할 수 있으며, 하나의 외부 스키마를 여러 개의 응용 프로그램이나 사용자가 공용할 수 있다.
• 같은 데이터베이스에 대해서도 서로 다른 관점을 정의할 수 있도록 허용한다.
• 일반 사용자는 질의어(SQL)를 사용하여 DB를 사용한다.
- 개념 스키마(Conceptual Schema) = 전체적인 뷰(View)
• 데이터베이스의 전체적인 논리적 구조로서, 모든 응용 프로그램이나 사용자들이 필요로 하는 데이터를 종합한 조직 전체의 데이터베이스로 하나만 존재한다.
• 개념 스키마는 개체 간의 관계와 제약조건을 나타내고 데이터베이스의 접근 권한, 보안 및 무결성 규칙에 관한 명세를 정의한다.
• 단순히 스키마(Schema)라고 하면 개념 스키마를 의미한다.
• 기관이나 조직체의 관점에서 데이터베이스를 정의한 것이다.
• 데이터베이스 관리자에 의해서 구성된다.
- 내부 스키마(Internal Schema)
• 물리적 저장장치의 입장에서 본 데이터베이스 구조로, 물리적인 저장장치와 밀접한 계층이다.
• 실제로 데이터베이스에 저장될 레코드의 물리적인 구조를 정의하고, 저장 데이터 항목의 표현 방법, 내부 레코드의 물리적 순서 등을 나타낸다.
• 시스템 프로그래머나 시스템 설계자가 보는 관점의 스키마이다.
• 데이터베이스의 물리적 구조를 정의한다.
• 데이터의 실제 저장 방법을 기술한다.
• 물리적인 저장장치와 밀접한 계층이다.
■ 전자 계산기
• 사용자나 응용 프로그래머가 각 개인의 입장에서 필요로 하는 데이터베이스의 논리적 구조를 정의한다.
• 전체 데이터베이스의 한 논리적인 부분으로 볼 수 있으므로 서브 스키마(Subschema)라고도 한다.
• 하나의 데이터베이스 시스템에는 여러 개의 외부 스키마가 존재할 수 있으며, 하나의 외부 스키마를 여러 개의 응용 프로그램이나 사용자가 공용할 수 있다.
• 같은 데이터베이스에 대해서도 서로 다른 관점을 정의할 수 있도록 허용한다.
• 일반 사용자는 질의어(SQL)를 사용하여 DB를 사용한다.
- 개념 스키마(Conceptual Schema) = 전체적인 뷰(View)
• 데이터베이스의 전체적인 논리적 구조로서, 모든 응용 프로그램이나 사용자들이 필요로 하는 데이터를 종합한 조직 전체의 데이터베이스로 하나만 존재한다.
• 개념 스키마는 개체 간의 관계와 제약조건을 나타내고 데이터베이스의 접근 권한, 보안 및 무결성 규칙에 관한 명세를 정의한다.
• 단순히 스키마(Schema)라고 하면 개념 스키마를 의미한다.
• 기관이나 조직체의 관점에서 데이터베이스를 정의한 것이다.
• 데이터베이스 관리자에 의해서 구성된다.
- 내부 스키마(Internal Schema)
• 물리적 저장장치의 입장에서 본 데이터베이스 구조로, 물리적인 저장장치와 밀접한 계층이다.
• 실제로 데이터베이스에 저장될 레코드의 물리적인 구조를 정의하고, 저장 데이터 항목의 표현 방법, 내부 레코드의 물리적 순서 등을 나타낸다.
• 시스템 프로그래머나 시스템 설계자가 보는 관점의 스키마이다.
• 데이터베이스의 물리적 구조를 정의한다.
• 데이터의 실제 저장 방법을 기술한다.
• 물리적인 저장장치와 밀접한 계층이다.
■ 전자 계산기
<DMA의 전송 절차>
❶ CPU가 DMA 제어기에게 명령을 내림
❷ DMA 제어기가 CPU에게 버스 사용을 요구함 (Bus Request)
❸ CPU가 DMA 제어기에게 버스 사용을 허가함 (Bus Grant)
❹ DMA 제어기가 주기억장치에서 데이터를 읽어 디스크로 전송함(Data Transfer)
❺ ❷~❹번을 반복하다가 데이터 전송이 완료되면 인터럽트(Interrupt) 신호를 보냄
❷ DMA 제어기가 CPU에게 버스 사용을 요구함 (Bus Request)
❸ CPU가 DMA 제어기에게 버스 사용을 허가함 (Bus Grant)
❹ DMA 제어기가 주기억장치에서 데이터를 읽어 디스크로 전송함(Data Transfer)
❺ ❷~❹번을 반복하다가 데이터 전송이 완료되면 인터럽트(Interrupt) 신호를 보냄
<명령어 형식>
3 번지 명령어
• Operand부가 3개로 구성되는 명령어 형식으로 여러
개의 범용 레지스터(GPR)를 가진 컴퓨터에서 사용함
• 연산의 결과는 주로 Operand 1에 기록됨
• 연산 시 원시 자료를 파괴하지 않음
• 다른 형식의 명령어를 이용하는 것보다 프로그램 전체
의 길이를 짧게 할 수 있음
• 전체 프로그램 실행 시 명령 인출을 위하여 주기억장
치를 접근하는 횟수가 줄어들어 프로그램 실행 속도를
단축시킴
2 번지 명령어
• Operand부가 두 개로 구성되는, 가장 일반적으로 사
용되는 명령어 형식임
• 여러 개의 범용 레지스터를 가진 컴퓨터에서 사용함
• 실행 속도가 빠르고 기억 장소를 많이 차지하지 않음
• 3주소 명령에 비해 명령어의 길이가 짧음
• 계산 결과가 기억장치에 기억되고 중앙처리장치에도
남아 있어서 계산 결과를 시험할 필요가 있을 때 시
간이 절약됨
• 단점
- 연산의 결과는 주로 Operand 1에 저장되므로
Operand 1에 있던 원래의 자료가 파괴됨
- 전체 프로그램의 길이가 길어짐
1 번지 명령어
• Operand부가 1개로 구성되어 있음
• AC(Accumulator; 누산기)를 이용하여 명령어를 처리함
0 번지 명령어
• Operand부 없이 OP-Code부만으로 구성
• 모든 연산은 Stack 메모리의 Stack Pointer가 가리키
는 Operand를 이용하여 수행함
• 수식을 계산하기 위해서는 우선, 수식을 Postfix(역
Polish) 형태로 변경하여야 함
• 모든 연산은 스택에 있는 자료를 이용하여 수행하기
때문에 스택 머신(Stack Machine)이라고도 함
• 원래의 자료가 남지 않음
<프로세서의 결합도>
다중 처리기는 각 프로세서 간의 결합도에 따라 다음과 같이 약결합 시스템과 강결합 시스템으로 분류할 수 있다.
- 약결합 (Loosely Coupled) 시스템
• 각 프로세서마다 독립된 메모리를 가진 시스템으로, 분산 처리 시스템이라고도 함
• 둘 이상의 독립된 컴퓨터 시스템을 통신망(통신 링크)을 통하여 연결한 시스템
• 각 시스템마다 독자적인 운영체제를 가지고 있음
• 각 시스템은 독립적으로 작동할 수도 있고, 필요한 경우에는 상호 통신할 수도 있음
• 프로세서 간의 통신은 메시지 전달이나 원격 프로시저 호출을 통해서 이루어짐
• 각 시스템마다 독자적인 운영이 가능하므로 CPU 간의 결합력이 약함
- 강결합 (밀결합, Tightly Coupled) 시스템
• 동일 운영체제하에서 여러 개의 프로세서가 하나의 메모리를 공유하여 사용하는 시스템으로, 다중 처리시스템이라고도 함
• 하나의 운영체제가 모든 프로세서와 시스템 하드웨어를 제어함
• 프로세서 간의 통신은 공유 메모리를 통해서 이루어짐
• 하나의 메모리를 사용하므로 CPU 간의 결합력이 강함
• 공유 메모리를 차지하려는 프로세서 간의 경쟁을 최소화해야 함
- 약결합 (Loosely Coupled) 시스템
• 각 프로세서마다 독립된 메모리를 가진 시스템으로, 분산 처리 시스템이라고도 함
• 둘 이상의 독립된 컴퓨터 시스템을 통신망(통신 링크)을 통하여 연결한 시스템
• 각 시스템마다 독자적인 운영체제를 가지고 있음
• 각 시스템은 독립적으로 작동할 수도 있고, 필요한 경우에는 상호 통신할 수도 있음
• 프로세서 간의 통신은 메시지 전달이나 원격 프로시저 호출을 통해서 이루어짐
• 각 시스템마다 독자적인 운영이 가능하므로 CPU 간의 결합력이 약함
- 강결합 (밀결합, Tightly Coupled) 시스템
• 동일 운영체제하에서 여러 개의 프로세서가 하나의 메모리를 공유하여 사용하는 시스템으로, 다중 처리시스템이라고도 함
• 하나의 운영체제가 모든 프로세서와 시스템 하드웨어를 제어함
• 프로세서 간의 통신은 공유 메모리를 통해서 이루어짐
• 하나의 메모리를 사용하므로 CPU 간의 결합력이 강함
• 공유 메모리를 차지하려는 프로세서 간의 경쟁을 최소화해야 함
<연산자(Operation Code)의 기능>
• 함수 연산 기능
• 자료 전달 기능
• 제어 기능
• 입·출력 기능
• 자료 전달 기능
• 제어 기능
• 입·출력 기능
<마이크로 오퍼레이션(Micro Operation)의 정의>
• Instruction을 수행하기 위해 CPU 내의 레지스터와 플래그가 의미 있는 상태 변환을 하도록 하는 동작이다.
• 컴퓨터의 모든 명령을 구성하고 있는 몇 가지 종류의 기본 동작이다.
• 컴퓨터 프로그램에 의한 명령의 수행은 마이크로 오퍼레이션의 수행으로 이루어진다.
• 레지스터에 저장된 데이터에 의해 이루어지는 동작이다.
• 마이크로 오퍼레이션은 하나의 Clock 펄스 동안 실행되는 기본 동작으로 모든 마이크로 오퍼레이션은 CPU의 Clock 펄스에 맞춰 실행된다.
• 마이크로 오퍼레이션의 순서를 결정하기 위하여 제어장치가 발생하는 신호를 제어신호라고 한다.
• 마이크로 오퍼레이션은 Instruction 실행과정에서 한단계씩 이루어지는 동작으로, 한 개의 Instruction은 여러 개의 Micro Operation이 동작되어 실행된다.
• Micro Cycle Time : 한 개의 Micro Operation을 수행하는 데 걸리는 시간
<제어장치의 비교>
제어장치는 필요한 마이크로 연산들이 연속적으로 수행될 수 있도록 제어 신호를 보내는 역할을 한다.
• 마이크로 프로그램
내부 제어신호를 발생하는 여러 가지 마이크로 인스트럭션으로 작성된 것으로, 보통 ROM에 저장되어 있습니다.
구 분
|
고정배선 제어장치
|
마이크로 프로그래밍 기법
|
반응 속도
|
고속
|
저속
|
회로 복잡도
|
복잡
|
간단
|
경제성
|
비경제적
|
경제적
|
융통성
|
없음
|
있음
|
구성
|
하드웨어
|
소프트웨어
|
내부 제어신호를 발생하는 여러 가지 마이크로 인스트럭션으로 작성된 것으로, 보통 ROM에 저장되어 있습니다.
<인터럽트 우선순위 판별 방법>
- 소프트웨어적인 방법 : Polling
• Interrupt 발생 시 가장 높은 우선순위의 인터럽트 자원(Source)부터 인터럽트 요청 플래그를 차례로 검사해서, 우선순위가 가장 높은 Interrupt 자원(Source)을 찾아내어 이에 해당하는 인터럽트 서비스 루틴을 수행하는 방식
• 소프트웨어적인 방식을 폴링이라고 함
• 많은 인터럽트가 있을 경우 그들을 모두 조사하는 데 많은 시간이 걸려 반응 시간이 느리다는 단점이 있음
• 회로가 간단하고 융통성이 있으며, 별도의 하드웨어가 필요 없으므로 경제적임
- 하드웨어적인 방법 : Vectored Interrupt
• CPU와 Interrupt를 요청할 수 있는 장치 사이에 장치번호에 해당하는 버스를 병렬이나 직렬로 연결하여 요청 장치의 번호를 CPU에 알리는 방식
• 벡터 인터럽트 방식에서는 인터럽트를 발생한 장치가 프로세서에게 분기할 곳에 대한 정보를 제공하는데, 이 정보를 인터럽트 벡터라 함
• 벡터 인터럽트를 하드웨어 신호에 의하여 수행되는 서브루틴이라고도 함
• 장치 판별을 위한 별도의 프로그램 루틴이 없어 응답 속도가 빠름
• 회로가 복잡하고 융통성이 없으며 추가적인 하드웨어가 필요하므로 비경제적임
• 직렬(Serial) 우선순위 부여 방식 : 데이지 체인 (Daisy-Chain) 방식
- 인터럽트가 발생하는 모든 장치를 한 개의 회선에 직렬로 연결함
- 우선순위가 높은 장치를 선두에 위치시키고 나머지를 우선순위에 따라 차례로 연결함
• 병렬(Parallel) 우선순위 부여 방식
- 인터럽트가 발생하는 각 장치를 개별적인 회선으로 연결함
- 우선순위는 Mask Register의 비트 위치에 의해서 결정됨
- 마스크 레지스터는 우선순위가 높은 것이 서비스 받고 있을 때 우선순위가 낮은 것을 비활
성화 시킬 수 있음
- 우선순위가 높은 Interrupt는 낮은 Interrupt가 처리되는 중에도 우선 처리됨
• Interrupt 발생 시 가장 높은 우선순위의 인터럽트 자원(Source)부터 인터럽트 요청 플래그를 차례로 검사해서, 우선순위가 가장 높은 Interrupt 자원(Source)을 찾아내어 이에 해당하는 인터럽트 서비스 루틴을 수행하는 방식
• 소프트웨어적인 방식을 폴링이라고 함
• 많은 인터럽트가 있을 경우 그들을 모두 조사하는 데 많은 시간이 걸려 반응 시간이 느리다는 단점이 있음
• 회로가 간단하고 융통성이 있으며, 별도의 하드웨어가 필요 없으므로 경제적임
- 하드웨어적인 방법 : Vectored Interrupt
• CPU와 Interrupt를 요청할 수 있는 장치 사이에 장치번호에 해당하는 버스를 병렬이나 직렬로 연결하여 요청 장치의 번호를 CPU에 알리는 방식
• 벡터 인터럽트 방식에서는 인터럽트를 발생한 장치가 프로세서에게 분기할 곳에 대한 정보를 제공하는데, 이 정보를 인터럽트 벡터라 함
• 벡터 인터럽트를 하드웨어 신호에 의하여 수행되는 서브루틴이라고도 함
• 장치 판별을 위한 별도의 프로그램 루틴이 없어 응답 속도가 빠름
• 회로가 복잡하고 융통성이 없으며 추가적인 하드웨어가 필요하므로 비경제적임
• 직렬(Serial) 우선순위 부여 방식 : 데이지 체인 (Daisy-Chain) 방식
- 인터럽트가 발생하는 모든 장치를 한 개의 회선에 직렬로 연결함
- 우선순위가 높은 장치를 선두에 위치시키고 나머지를 우선순위에 따라 차례로 연결함
• 병렬(Parallel) 우선순위 부여 방식
- 인터럽트가 발생하는 각 장치를 개별적인 회선으로 연결함
- 우선순위는 Mask Register의 비트 위치에 의해서 결정됨
- 마스크 레지스터는 우선순위가 높은 것이 서비스 받고 있을 때 우선순위가 낮은 것을 비활
성화 시킬 수 있음
- 우선순위가 높은 Interrupt는 낮은 Interrupt가 처리되는 중에도 우선 처리됨
<메모리 인터리빙(Memory Interleaving)>
• 여러 개의 독립된 모듈로 이루어진 복수 모듈 메모리와 CPU 간의 주소 버스가 한 개로만 구성되어 있으면 같은 시각에 CPU로부터 여러 모듈들로 동시에 주소를 전달할 수 없기 때문에, CPU가 각 모듈로 전송할 주소를 교대로 분산 배치한 후 차례대로 전송하여 여러 모듈을 병행 접근하는 기법이다.
• 중앙처리장치의 쉬는 시간을 줄일 수 있고, 단위시간당 수행할 수 있는 명령어의 수를 증가시킬 수 있다.
• 이 기억장치를 구성하는 모듈의 수 만큼의 단어들에 동시 접근이 가능하다.
• 메모리 인터리빙 기법을 사용하면 기억장치의 접근 시간을 효율적으로 높일 수 있으므로 캐시 기억장치, 고속 DMA 전송 등에서 많이 사용된다.
- 메모리 인터리빙은 인터리빙, 디스크 인터리빙으로 혼용되어 사용됩니다.
■ 운영체제
• 중앙처리장치의 쉬는 시간을 줄일 수 있고, 단위시간당 수행할 수 있는 명령어의 수를 증가시킬 수 있다.
• 이 기억장치를 구성하는 모듈의 수 만큼의 단어들에 동시 접근이 가능하다.
• 메모리 인터리빙 기법을 사용하면 기억장치의 접근 시간을 효율적으로 높일 수 있으므로 캐시 기억장치, 고속 DMA 전송 등에서 많이 사용된다.
- 메모리 인터리빙은 인터리빙, 디스크 인터리빙으로 혼용되어 사용됩니다.
■ 운영체제
<프로세서 스케줄링의 종류>
- 비선점(Non-Preemptive) 스케줄링
• 이미 할당된 CPU를 다른 프로세스가 강제로 빼앗아 사용할 수 없는 스케줄링 기법
• 프로세스가 CPU를 할당받으면 해당 프로세스가 완료될 때까지 CPU를 사용함
• 모든 프로세스에 대한 요구를 공정하게 처리할 수 있음
• 일괄 처리 방식에 적합하며, 중요한 작업(짧은 작업)이 중요하지 않은 작업(긴 작업)을 기다리는 경우가 발생할 수 있음
• 응답 시간 예측이 용이함
• 종류 : FCFS(FIFO), SJF, 우선순위, HRN, 기한부 등의 알고리즘
- 선점(Preemptive) 스케줄링
• 하나의 프로세스가 CPU를 할당받아 실행 하고 있을 때 우선순위가 높은 다른 프로세스가 CPU를 강제로 빼앗아 사용할 수 있는 스케줄링 기법
• 우선순위가 높은 프로세스를 빠르게 처리할 수 있음
• 주로 빠른 응답시간을 요구하는 대화식 시분할 시스템에 사용됨
• 선점으로 인한 많은 오버헤드를 초래함
• 선점을 위해 시간 배당을 위한 인터럽트용 타이머 클럭(Clock)이 필요함
• 종류 : SRT, 선점 우선순위, RR(Round Robin), 다단계 큐, 다단계 피드백 큐 등의 알고리즘
• 이미 할당된 CPU를 다른 프로세스가 강제로 빼앗아 사용할 수 없는 스케줄링 기법
• 프로세스가 CPU를 할당받으면 해당 프로세스가 완료될 때까지 CPU를 사용함
• 모든 프로세스에 대한 요구를 공정하게 처리할 수 있음
• 일괄 처리 방식에 적합하며, 중요한 작업(짧은 작업)이 중요하지 않은 작업(긴 작업)을 기다리는 경우가 발생할 수 있음
• 응답 시간 예측이 용이함
• 종류 : FCFS(FIFO), SJF, 우선순위, HRN, 기한부 등의 알고리즘
- 선점(Preemptive) 스케줄링
• 하나의 프로세스가 CPU를 할당받아 실행 하고 있을 때 우선순위가 높은 다른 프로세스가 CPU를 강제로 빼앗아 사용할 수 있는 스케줄링 기법
• 우선순위가 높은 프로세스를 빠르게 처리할 수 있음
• 주로 빠른 응답시간을 요구하는 대화식 시분할 시스템에 사용됨
• 선점으로 인한 많은 오버헤드를 초래함
• 선점을 위해 시간 배당을 위한 인터럽트용 타이머 클럭(Clock)이 필요함
• 종류 : SRT, 선점 우선순위, RR(Round Robin), 다단계 큐, 다단계 피드백 큐 등의 알고리즘
<비선점 스케줄링의 종류>
FCFS
(First-Come
First-Service)
|
• 준비상태 큐에 도착한 순서에 따라 차례로 CPU를 할당하는 기법
• 먼저 도착한 것이 먼저 처리되어 공평성은 유지되지만 짧은 작업이 긴 작업을, 중요한 작업이 중요하지 않은 작업을 기다리게 됨
|
SJF
(Shortest Job
First)
|
• 실행 시간이 가장 짧은 프로세스에 먼저 CPU를 할당하는 기법
• 가장 적은 평균 대기 시간을 제공하는 최적 알고리즘
|
HRN(Hightest
Responseratio
Next)
|
• 실행 시간이 긴 프로세스에 불리한 SJF 기법을 보완하기 위한 것으로, 대기 시간과 서비스(실행)시간을 이용하는 기법
• 우선순위 계산 공식 =
(대기 시간 + 서비스 시간) / 서비스 시간
• 우선 순위 계산 결과값이 높은 것부터 우선 순위가 부여되는데, 대기 시간이 긴 프로세스일 경우 계산 결과값이 높게 나옴
|
기한부
(Deadline)
|
• 프로세스에게 일정한 시간을 주어 그 시간 안에 프로세스를 완료하도록 하는 기법
• 시스템은 프로세스에게 할당할 정확한 시간을
추정해야 하며, 이를 위해서 사용자는 시스템이
요구한 프로세스에 대한 정확한 정보를 제공해
야 함
|
우선순위
(Priority)
|
준비상태 큐에서 기다리는 각 프로세스마다 우선순위를 부여하여 그 중 가장 높은 프로세스에게 먼저 CPU를 할당하는 기법
|
<스케줄링 / 문맥 교환>
• 스케줄링 정의 : 프로세스가 생성되어 실행될 때 필요한 시스템의 여러 자원을 해당 프로세스에게 할당하는 작업
• 스케줄링 목적 : 공정성, 처리율 증가, CPU 이용률 증가, 우선순위 제도, 오버헤드 최소화, 응답 시간 최소화, 반환 시간 최소화, 대기 시간 최소화, 균형 있는 자원의 사용, 무한 연기 회피
• 문맥 교환(Context Switching) : 하나의 프로세스에서 다른 프로세스로 CPU가 할당되는 과정에서 발생되는 것으로, 새로운 프로세스에게 CPU를 할당하기 위해 현재 CPU가 할당된 프로세스의 상태 정보를 저장하고, 새로운 프로세스의 상태 정보를 설정한 후 CPU를 할당하여 실행되도록 하는 작업이며, 운영체제에서 Overhead의 발생 요인 중 하나임
• 스케줄링 목적 : 공정성, 처리율 증가, CPU 이용률 증가, 우선순위 제도, 오버헤드 최소화, 응답 시간 최소화, 반환 시간 최소화, 대기 시간 최소화, 균형 있는 자원의 사용, 무한 연기 회피
• 문맥 교환(Context Switching) : 하나의 프로세스에서 다른 프로세스로 CPU가 할당되는 과정에서 발생되는 것으로, 새로운 프로세스에게 CPU를 할당하기 위해 현재 CPU가 할당된 프로세스의 상태 정보를 저장하고, 새로운 프로세스의 상태 정보를 설정한 후 CPU를 할당하여 실행되도록 하는 작업이며, 운영체제에서 Overhead의 발생 요인 중 하나임
<페이지 크기>
- 페이지 크기가 작을 경우
• 페이지의 단편화가 감소되고, 한 개의 페이지를 주기억장치로 이동하는 시간이 줄어듦
• 프로세스(프로그램) 수행에 필요한 내용만 주기억장치에 적재할 수 있고, Locality(국부성)
에 더 일치할 수 있기 때문에 기억장치 효율이 높아짐
• 페이지 정보를 갖는 페이지 맵 테이블의 크기가 커지고, 매핑 속도가 늦어짐
• 디스크 접근 횟수가 많아져서 전체적인 입·출력 시간은 늘어남
- 페이지 크기가 클 경우
• 페이지 정보를 갖는 페이지 맵 테이블의 크기가 작아지고, 매핑 속도가 빨라짐
• 디스크 접근 횟수가 줄어들어 전체적인 입·출력의 효율성이 증가함
• 페이지의 단편화가 증가되고, 한 개의 페이지를 주기억장치로 이동하는 시간이 늘어남
• 프로그램 수행에 불필요한 내용까지도 주기억장치에 적재될 수 있음
• 페이지의 단편화가 감소되고, 한 개의 페이지를 주기억장치로 이동하는 시간이 줄어듦
• 프로세스(프로그램) 수행에 필요한 내용만 주기억장치에 적재할 수 있고, Locality(국부성)
에 더 일치할 수 있기 때문에 기억장치 효율이 높아짐
• 페이지 정보를 갖는 페이지 맵 테이블의 크기가 커지고, 매핑 속도가 늦어짐
• 디스크 접근 횟수가 많아져서 전체적인 입·출력 시간은 늘어남
- 페이지 크기가 클 경우
• 페이지 정보를 갖는 페이지 맵 테이블의 크기가 작아지고, 매핑 속도가 빨라짐
• 디스크 접근 횟수가 줄어들어 전체적인 입·출력의 효율성이 증가함
• 페이지의 단편화가 증가되고, 한 개의 페이지를 주기억장치로 이동하는 시간이 늘어남
• 프로그램 수행에 불필요한 내용까지도 주기억장치에 적재될 수 있음
<색인 순차 파일(Indexed Sequential File)>
• 순차 처리와 랜덤 처리가 모두 가능하도록 레코드들을 키 값 순으로 정렬(Sort)시켜 기록하고, 레코드의 키 항목만을 모은 색인을 구성하여 편성하는 방식이다.
• 색인을 이용한 순차적인 접근 방법을 제공하여 ISAM (Index Sequential Access Method)이라고도 한다.
• 레코드를 참조할 때는 색인을 탐색한 후 색인이 가리키는 포인터(주소)를 사용하여 직접 참조할 수 있다.
• 일반적으로 자기 디스크에 많이 사용되며, 자기 테이프에서는 사용할 수 없다.
- 색인 순차 파일의 구성
• 기본 구역(Prime Area) : 실제 레코드들을 기록하는 부분으로, 각 레코드는 키 값 순으로 저장
• 색인 구역(Index Area) : 기본 구역에 있는 레코드들의 위치를 찾아가는 색인이 기록되는 부분으로, 트랙 색인 구역, 실린더 색인 구역, 마스터 색인 구역으로 구분할 수 있음
• 오버플로 구역(Overflow Area) : 기본 구역에 빈 공간이 없어서 새로운 레코드의 삽입이 불가능할 때를 대비하여 예비적으로 확보해 둔 부분
• 색인을 이용한 순차적인 접근 방법을 제공하여 ISAM (Index Sequential Access Method)이라고도 한다.
• 레코드를 참조할 때는 색인을 탐색한 후 색인이 가리키는 포인터(주소)를 사용하여 직접 참조할 수 있다.
• 일반적으로 자기 디스크에 많이 사용되며, 자기 테이프에서는 사용할 수 없다.
- 색인 순차 파일의 구성
• 기본 구역(Prime Area) : 실제 레코드들을 기록하는 부분으로, 각 레코드는 키 값 순으로 저장
• 색인 구역(Index Area) : 기본 구역에 있는 레코드들의 위치를 찾아가는 색인이 기록되는 부분으로, 트랙 색인 구역, 실린더 색인 구역, 마스터 색인 구역으로 구분할 수 있음
• 오버플로 구역(Overflow Area) : 기본 구역에 빈 공간이 없어서 새로운 레코드의 삽입이 불가능할 때를 대비하여 예비적으로 확보해 둔 부분
<보안 유지 기법>
- 외부 보안
• 시설 보안 : 천재지변이나 외부 침입자로부터의 보안
• 운용 보안 : 전산소 관리 및 경영자들의 정책과 통제에 의해 이루어지는 보안 사용자
- 인터페이스 보안
• 운영체제가 사용자의 신원을 확인한 후 권한이 있는 사용자에게만 시스템의 프로그램과 데이터를 사용할 수 있게 하는 보안 기법
- 내부 보안
• 하드웨어나 운영체제의 내장된 보안 기능을 이용하여 시스템의 신뢰성을 유지하고, 보안 문제를 해결하는 기법
■ 소프트웨어 공학
• 시설 보안 : 천재지변이나 외부 침입자로부터의 보안
• 운용 보안 : 전산소 관리 및 경영자들의 정책과 통제에 의해 이루어지는 보안 사용자
- 인터페이스 보안
• 운영체제가 사용자의 신원을 확인한 후 권한이 있는 사용자에게만 시스템의 프로그램과 데이터를 사용할 수 있게 하는 보안 기법
- 내부 보안
• 하드웨어나 운영체제의 내장된 보안 기능을 이용하여 시스템의 신뢰성을 유지하고, 보안 문제를 해결하는 기법
■ 소프트웨어 공학
<HIPO>
• 시스템의 분석 및 설계나 문서화할 때 사용되는 기법으로 시스템 실행 과정인 입력, 처리, 출력의 기능을 나타낸다.
• 기본 시스템 모델은 입력, 처리, 출력으로 구성되며, 하향식 소프트웨어 개발을 위한 문서화 도구이다.
• 체계적인 문서 관리가 가능하고, 기호, 도표 등을 사용하므로 보기 쉬우며 이해하기도 쉽다.
• 기능과 자료의 의존 관계를 동시에 표현할 수 있다.
• HIPO의 종류
- 가시적 도표 (도식 목차)
시스템의 전체적인 기능과 흐름을 보여주는 계층(Tree) 구조도
- 총체적 도표 (개요 도표, 총괄 도표)
프로그램을 구성하는 기능을 기술한 것으로 입력, 처리, 출력에 대한 전반적인 정보를 제공하는 도표
- 세부적 도표 (상세 도표)
총체적 도표에 표시된 기능을 구성하는 기본 요소들을 상세히 기술하는 도표
• 기본 시스템 모델은 입력, 처리, 출력으로 구성되며, 하향식 소프트웨어 개발을 위한 문서화 도구이다.
• 체계적인 문서 관리가 가능하고, 기호, 도표 등을 사용하므로 보기 쉬우며 이해하기도 쉽다.
• 기능과 자료의 의존 관계를 동시에 표현할 수 있다.
• HIPO의 종류
- 가시적 도표 (도식 목차)
시스템의 전체적인 기능과 흐름을 보여주는 계층(Tree) 구조도
- 총체적 도표 (개요 도표, 총괄 도표)
프로그램을 구성하는 기능을 기술한 것으로 입력, 처리, 출력에 대한 전반적인 정보를 제공하는 도표
- 세부적 도표 (상세 도표)
총체적 도표에 표시된 기능을 구성하는 기본 요소들을 상세히 기술하는 도표
<자료 흐름도(DFD)>
• 요구사항 분석에서 자료의 흐름 및 변환 과정과 기능을 도형 중심으로 기술하는 방법으로 버블(Bubble) 차트라고도 한다.
• 시스템 안의 프로세스, 자료 저장소, 단말 간 자료의 흐름을 나타내는 그래프로, 자료 흐름과 처리를 중심으로 하는 구조적 분석 기법에 이용된다.
• 자료 흐름도는 자료 흐름과 기능을 자세히 표현하기 위해 단계적으로 세분화된다.
• 단계(Level) 0의 자료 흐름도를 배경도라 하는데, 이 배경도를 통해 전체 시스템의 범위를 표현한다.
• 각각의 프로세스에 대하여 개별적인 상세화 및 계층화가 가능하다.
• 자료 흐름도 구성 요소의 일반적 표기법
• 시스템 안의 프로세스, 자료 저장소, 단말 간 자료의 흐름을 나타내는 그래프로, 자료 흐름과 처리를 중심으로 하는 구조적 분석 기법에 이용된다.
• 자료 흐름도는 자료 흐름과 기능을 자세히 표현하기 위해 단계적으로 세분화된다.
• 단계(Level) 0의 자료 흐름도를 배경도라 하는데, 이 배경도를 통해 전체 시스템의 범위를 표현한다.
• 각각의 프로세스에 대하여 개별적인 상세화 및 계층화가 가능하다.
• 자료 흐름도 구성 요소의 일반적 표기법
<자료 사전(DD)>
• 자료 흐름도 상에 있는 자료를 더 자세히 정의하고 기록한 것이며, 이처럼 데이터를 설명하는 데이터를 데이터의 데이터 또는 메타 데이터(Meta Data)라고 한다.
• 자료 흐름도에 시각적으로 표시된 자료에 대한 정보를 체계적이고 조직적으로 모아 개발자나 사용자가 편리하게 사용할 수 있다.
• 자료 사전 표기 기호
기호
|
의 미
|
=
|
자료의 정의 : ~로 구성되어 있다(is
composed of)
|
+
|
자료의 연결 : 그리고(and)
|
( )
|
자료의 생략 : 생략 가능한 자료(Optional)
|
[ | ]
|
자료의 선택 : 또는(or)
|
{ }
|
자료의 반복(Iteration
of)
|
* *
|
자료의 설명 : 주석(Comment)
|
<정형 기술 검토 (FTR)>
• 가장 일반적인 검토 방법으로 소프트웨어 기술자들에 의해 수행되는 소프트웨어 품질 보증 활동
• 정 형 기 술 검 토 유 형 에 는 검 토 회 의 (Walkthrough), 검열(Inspections) 등이 있으며
이는 모두 회의 형태로 수행됨
• 정형 기술 검토의 목적
- 검토중인 소프트웨어가 해당 요구사항과 일치하는지를 검증함
- 소프트웨어가 미리 정해진 표준에 따라 표현되고 있는지를 확인하고, 기능과 로직에 오류
가 있는지 확인함
- 소프트웨어가 균일한 방식으로 개발되도록함
- 프로젝트를 보다 용이하게 관리하도록함
• 정형 기술 검토에 대한 지침 사항
- 제품의 검토에만 집중하라.
- 의제를 제한하여 진행하라.
- 논쟁과 반박을 제한하라.
- 문제 영역을 명확히 표현하라.
- 해결책이나 개선책에 대해서는 논하지 말아라.
- 참가자의 수를 제한하고 사전 준비를 강요하라.
- 검토될 확률이 있는 각 제품에 대한 체크 리스트를 개발하라.
- 자원과 시간 일정을 할당하라.
- 모든 검토자들을 위해 의미있는 훈련을 행하라.
- 검토자들은 사전에 작성한 메모들을 공유하라.
- 검토의 과정과 결과를 재검토하라.
■ 데이터 통신
<회선 교환 방식>
• 통신을 원하는 두 지점을 교환기를 이용하여 물리적으로 접속시키는 방식이다.
• 데이터 전송 전에 먼저 물리적 통신 회선을 통한 연결이 필요하다.
• 접속이 되고 나면 그 통신 회선은 전용 회선에 의한 통신처럼 데이터가 전달된다(고정 대역 전송).
• 접속에는 긴 시간이 소요되나 일단 접속되면 교환기 내에서 전송 지연이 거의 없어 실시간 전송이 가능하다.
• 데이터 전송에 필요한 전체 시간이 축적 교환 방식에 비해 길다.
• 데이터가 전송되지 않는 동안에도 접속이 유지되기 때문에 데이터 전송이 연속적이지 않은 경우 통신 회선이 낭비된다.
• 일정한 데이터 전송률을 제공하므로 동일한 전송 속도가 유지된다.
• 전송된 데이터의 오류 제어나 흐름 제어는 사용자에 의해 수행된다.
• 공간 분할 교환 방식과 시분할 교환 방식으로 나뉘고, 시분할 교환 방식에는 TDM 버스 교환 방식, 타임 슬롯 교환 방식, 시간 다중화 교환 방식이 있다.
• 통신 과정 : 호(링크) 설정 → 데이터 전송 → 호(링크) 해제
• 제어 신호 방식
감시(관리)제어 신호
|
• 상대방과 통화하는 데 필요한 자원을 이용할 수 있는지를 결정하고 알리는 데 사용되는 제어 신호
• 서비스 요청, 응답, 경보 및 휴지 상태 복귀 신호 등의 기능 수행
|
주소 제어 신호
|
상대방을 식별하고 경로를 배정하여 전화를 울리게 함
|
호 정보 제어 신호
|
신호음, 연결음, 통화중 신호음 등 호의 상태 정보를 송신자에게 제공하는 역할 수행
|
망 관리 제어 신호
|
통신망의 전체적인 운영, 유지, 고장 수리 등을 위해 사용
|
<메시지 교환 방식>
• 교환기가 일단 송신 측의 메시지를 받아서 저장한 후 전송 순서가 되면 수신 측으로 전송하는 방식
• 각 메시지마다 전송 경로를 결정하고, 수신 측 주소를 붙여서 전송함
• 전송 메시지는 추후 검색 및 속도나 코드 변환이 가능함
• 전송 지연 시간이 매우 김
• 응답 시간이 느려 대화형 데이터 전송에 부적절함
<HDLC 프레임 구조>
• 플래그→주소부→제어부→정보부→검사부→플래그
<집중화기(Concentrator)>
• 하나 또는 소수의 회선에 여러 대의 단말기를 접속하여 사용할 수 있도록 하는 장치이다.
• 실제 전송할 데이터가 있는 단말기에만 통신 회선을 할당하여 동적으로 통신 회선을 이용할 수 있도록 한다.
• 한 개의 단말기가 통신 회선을 점유하면 다른 단말기는 회선을 사용할 수가 없으므로, 다른 단말기의 자료를 임시로 보관할 버퍼가 필요하다.
• m개의 입력 회선을 n개의 출력 회선으로 집중화하는 장치로, 입력 회선의 수가 출력 회선의 수보다 같거나 많다.
• 여러 대의 단말기의 속도의 합이 통신 회선의 속도보다 크거나 같다(A + B + C ≥ D).
• 회선의 이용률이 낮고, 불규칙적인 전송에 적합하다.