데이터베이스
관계데이터 모델의 무결성
개체 무결성 릴레이션에서 기본키를 구성하는 속성은 널(NULL) 값이나 중복값을 가질 수 없음
참조 무결성 외래키 값은 NULL이거나 참조 릴레이션의 기본키 값과 동일해야 한다
→ 릴레이션은 참조할 수 없는 외래키 값을 가질 수 없다
도메인 무결성 특정 속성의 값이 그 속성이 정의된 도메인에 속한 값이어야 한다
COMMIT, ROLLBACK
COMMIT 하나의 트랜잭션에 대한 작업이 성공적으로 끝나고 수행 결과를 관리자에게 알려주는 연산
ROLLBACK 하나의 트랜잭션 처리가 비정상적으로 종료되어 해당 트랜잭션을 재시작 OR 폐기
관계 대수
릴레이션 조작을 위한 연산의 집합, 기술적인 특성 가짐
절차적 언어
순수관계연산: select, project, join, division
일반 집합연산: union, intersection, difference, cartesian product
관계 해석
비절차적 언어
Predicate Calculus에 기반을 둠
튜플 및 도메인 관계 해석
데이터베이스 회복 recovery
트랜잭션들을 수행하는 도중 장애로 인해 손상된 데이터베이스를 손상되기 이전의 정상적인 상태로 복구시키는 작업
종류
Deferred Modification 연기 갱신 기법
Immediate Update 즉각 갱신 기법
Shadow Paging 그림자 페이지 대체 기법
Check Point 검사점 기법
전자계산기구조
바이트 머신의 데이터 형식
고정소수점 표현 방식 부호, 숫자로 구성, 부호비트는 0 양수, 1 음수, 연산 속도 빠름
부동소수점 표현 방식 부호, 지수, 가수로 구성, 2진 실수 연산작업에 사용, 연산속도 느림, 정밀도 높음
SDRAM Synchronous Dynamic Random Access Memory
동기적이기 때문에 액세스가 진행되는 동안 CPU가 대기하는 것이 아니라 동기.
여러 개의 내부 뱅크들(Banks)에서 동시 액세스가 진행된다
버스 클럭에 동기화되어 정보가 전송된다
여러 개의 데이터들을 연속적으로 전송하는 버스트 모드를 지원한다
인스트럭션 구성
연산자, 주소, 워드의 크기 ⇒ 인터럽트 관련 X
DMA Direct Memory Access
입출력장치가 직접 주기억장치에 접근하여 datablock을 입출력하는 방식으로 입출력 전송이 CPU의 레지스터를 경유하지 않고 수행됨
BCD 코드 Binary-coded Decimal code
2진수로 표현한 10진수
한 자리를 4bit 이진수로 표현 ⇒ 0~9까지 표현해야 하기 때문
Excess-3 코드 (비가중치)
BCD를 보수화한 것 ⇒ BCD 코드의 각 자리에 3(0011)을 더한 것
왜? 이 코드는 bit를 반전시킬 경우 9의 보수값이 나온다. (더해서 10이 되는 수)
비가중치 코드
++ 자기보수가 가능한 코드로는 2421도 있는데, 이는 가중치 코드
인터럽트의 우선순위 결정
Polling 소프트웨어적 방법
Vectored Interrupt 하드웨어적 방법
Daisy Chain, Parallel (병렬 우선순위 부여 방식)
트랩 불법적인 명령, DIV0, overflow, underflow 등이 발생할 경우 보호 영역 내의 기억 장소 참조 ⇒ 인터럽트의 우선순위결정과 관련이 없다
마이크로명령어 형식
조건 필드 분기를 위한 플래그 정보
연산 필드 동시에 수행되는 연산 정보
주소 필드 분기가 발생할 경우 실행할 목적지 마이크로 명령어 주소로 사용된다
분기 필드 분기의 종류와 다음에 실행할 마이크로 명령어의 주소를 결정하는 방법
마이크로명령어
MUL A AC ⟵ AC×M[A]
LDA Load to AC AC ← M[A]
STA Store to AC M[A] ← AC
운영체제
페이징 기법
페이지 크가 작아질 경우
페이지 단편화 감소: 한 개의 페이지를 주기억장치로 이동하는 시간이 줄어듬
프로세스 수행에 필요한 내용만 주기억장치에 적재 가능: 기억장치 효율성 높아짐
페이지 맵 테이블 크기가 커짐: 매핑 속도 느려짐
입출력 시간 증가
페이지 크기가 클 경우
페이지 맵 테이블의 크기가 작아짐: 매핑 속도 빨라짐
입출력 효율성 증가
페이지 단편화 증가
한 개의 페이지를 주기억장치로 이동하는 시간이 늘어남
불필요한 내용까지도 주기억장치에 적재됨
시스템 소프트웨어 처리 프로그램
제어 프로그램 Control Program
시스템 전체의 작동 상태 감시, 작업의 순서 지정(스케줄링), 작업에 사용되는 데이터 관리, 인터럽트 처리 등의 역할을 수행하는 프로그램
감시 프로그램 Supervisor Program
각종 프로그램의 실행과 시스템 전체의 작동 상태를 감시, 감독하는 프로그램
작업 제어 프로그램 Job Control Program
어떤 업무를 처리하고 다른 업무로의 이행을 다중으로 수행하기 위한 준비 및 그 처리에 대한 완료를 담당하는 프로그램
자료 관리 프로그램 Data Management Program
주기억장치와 보조기억장치 사이의 데이터 전송과 보조기억장치의 자료 갱신 및 유지 보수 기능을 수행하는 프로그램
처리 프로그램
제어 프로그램의 지시를 받아 사용자가 요구한 문제를 해결하기 위한 프로그램
언어 번역 프로그램 Language Translate Program
원시 프로그램을 기계어 형태의 목적 프로그램으로 번역하는 프로그램 (어셈블러, 컴파일러, 인터프리터)
서비스 프로그램 Service Program
컴퓨터를 효율적으로 사용할 수 있는 사용 빈도가 높은 프로그램
문제 프로그램 Problem Program
특정 업무 및 해결을 위해 사용자가 작성한 프로그램
비선점 vs 선점 스케줄링 종류
비선점 C-SCAN, FCFS, SSTF
선점 SLTF
프로세서 상태 전이
Dispatch 준비 → 실행
준비 상태의 프로세스들 중에서 우선순위가 가장 높은 프로세스를 선정하여 CPU를 할당함으로써 실행 상태로 전환한다
TimeRunOut 실행 → 준비
CPU의 지정된 할당 시간을 모두 사용한 프로세스는 다른 프로세스를 위해 다시 준비 상태로 되돌아간다
Block 실행 → 대기
실행 중인 프로세스가 입출력 명령을 만나면 인터럽트가 발생하여 입출력 전용 프로세서에게 CPU를 양도하고 자신은 대기 상태로 전환한다
Wake-up 대기 → 준비
입출력 완료를 기다리다가 입출력 완료 신호가 들어오면 대기 중인 프로세스는 준비 상태로 전환한다
Spooling
제출된 작업들을 스풀 공간인 디스크에 수록하여 보류 상태로 만듦 → 디스크를 매우 큰 버퍼처럼 사용하는 것
스레드
프로세스와 마찬가지로 프로세서를 이용하는 기본 단위이면서 프로그램 명령을 실행하는 프로세스 내의 개체로 경량 프로세스라 한다.
명령어를 독립적으로 실행할 수 있는 하나의 제어 흐름
한 프로세서 내에 여러 스레드가 존재할 수 있으나(주소 공유), 하나의 스레드가 여러 프로세스에 포함될 수 없다. 프로세스 단위로 할당받은 코드, 데이터, 파일 등은 공유하며 스레드 단위로 실행을 위해 자신만의 스택과 레지스터 영역을 갖는다.
스레드의 특징
실행 환경을 공유시켜 기억장소의 낭비가 줄어든다
하나의 프로세스를 여러 개의 스레드로 생성하여 병행성을 증진시킬 수 있다
프로세스들 간의 통신을 향상시킬 수 있다
같은 프로세스의 스레드들은 동일한 주소 공간을 공유하기 때문에 프로세스 간 문맥 교환 비용보다 스레드 간 문맥 교환 비용이 훨씬 적게 든다.
페이지 교체 알고리즘 - NUR Not Used Recently
최근 사용하지 않은 페이지 교체
최근 사용 여부를 확인하기 위해 (시간 오버헤드를 줄이기 위해) 각 페이지마다 참조 비트, 변형 비트 사용
교체 순서: 00 - 01 - 10 - 11 (0: 참조 비트, 1: 변형 비트)
교체 기법 새 데이터를 주기억장치에 등록할 때 공간이 부족할 경우 먼저 있던 데이터를 빼고 넣는 행위
LRU Least Recently Used와 차이점 참조 비트, 변형 비트의 사용 여부
강결합 Tightly-Coupled
동일 운영체제 하에서 여러 개의 프로세서가 하나의 메모리를 공유하여 사용하는 시스으로, 다중 처리 시스템이라고도 한다.
프로세스 간 통신은 공유 메모리를 이용한다.
여러 처리기들 간에 하나의 저장 장치를 공유한다.
메모리에 대한 프로세서 간의 경쟁 최소화가 고려되어야 한다.
모니터
병행 프로세서의 문제점을 해결하기 위한 방안 중 상호배제 유형(모니터, 세마모어) 중 하나
자원 요구 프로세스는 그 자원 관련 모니터 진입부를 반드시 호출한다.
한 순간에 하나의 프로세스만이 모니터에 진입할 수 있다.
정보 은폐의 개념을 사용한다.
모니어 외부의 프로세스는 프로시저를 직접 액세스할 수 없으며, 모니터의 경계에서 상호 배제가 시행된다.
Dead Lock - 교착 상태 발생 필요충분조건
네 가지 조건이 모두 충족해야 교착 상태가 발생한다.
Circular Wait 환형 대기 이미 자원을 가진 프로세스가 앞이나 뒤의 프로세스 자원을 요구한다
Hold and Wait 점유와 대기 이미 자원을 가진 프로세스가 다른 자원의 할당을 요구한다
Mutual Exclusion 상호배제 한 번에 한 개의 프로세스만이 공유 자원을 사용할 수 있어야 한다
Non-Preemption 비선점 프로세스에 할당된 자원은 사용이 끝날 때까지 강제로 빼앗을 수 없다
디렉토리: 트리 구조
UNIX에서 사용하는 디렉토리 구조
각 디렉토리는 서브 디렉토리나 파일을 가질 수 있다
디렉토리는 생성과 파괴가 비교적 용이하다
디렉토리의 탐색은 포인터를 사용하며, 경로명은 절대와 상대 경로명을 사용한다
소프트웨어공학
소프트웨어 개발 영역
결정하는 주요 요소: 처리될 데이터 소프트웨어의 기능, 성능, 제약조건, 인터페이스, 신뢰도 등
인터페이스
소프트웨어에 의해 간접적으로 제어되는 장치와 소프트웨어를 실행하는 프로세서나 하드웨어
운영체제, 서브루틴 패키지와 같이 새로운 소프트웨어에 연결되어야 하는 소프트웨어
키보드나 기타 I/O 장치를 통해 소프트웨어를 사용하는 사람
순서적인 연산에 의해 소프트웨어를 실행하는 절차
소프트웨어 보수
완전화 Perfective 보수
소프트웨어의 본래 기능에 새로운 기능을 추가하거나 성능을 개선하기 위해 소프트웨어를 확장시키는 활동
적응 Adaptive 보수
소프트웨어의 수명 기간 중에 운영체제와 컴파일러와 같은 프로그래밍 환경 변화와 주변장치 또는 다른 시스템 요소가 향상되거나 변경될 때 기존의 소프트웨어에 반영하기 위해 수행하는 활동
예방 Preventive 보수
장래의 유지보수성 또는 신뢰성을 개선하거나 소프트웨어의 오류 발생에 대비하여 미리 예방 수단을 강구해 두는 활동
수정 Corrective 보수
시스템을 운영하면서 검사 단계에서 발견하지 못한 잠재적인 오류를 찾아 수정하는 활동
자료 흐름도
원 = 프로세스
화살표 = 흐름
사각형 = 단말
직선(평행선, 이중선) = 저장소
데이터통신
HDLC Frames
Information Frame, Supervisory Frame, Unnumbered Frame
회선 제어 - 전송 제어 문자 구성
SOH Start Of Heading 헤딩 시작
STX Start Of Text 본문 시작, 전송할 데이터 그룹의 시작
SYN Synchronous idle 동기 문자
DLE Data Link Escape 데이터 투과성을 위해 삽입 (전송 제어 문자와 전송 데이터 구분을 위해 사용)
라우팅 테이블 - 경로제어표
다음 홉, 메트릭, 수신지 네트워크 주소로 구성
ARQ
Stop-and-Wait ARQ
송신 측에서 한 개의 블록을 전송한 후 수신 측으로부터 응답을 기다리는 방식
Selective-Repeat ARQ
오류가 발생한 블록만을 재전송하는 방식
Go-back-N ARQ
데이터 프레임을 연속적으로 전송하는 과정에서 NAK(오류 발생)을 수신하게 되면, 오류가 발생한 프레임 이후에 전송된 모든 프레임을 재전송하는 방식
데이터 전송 방법
메시지 교환 방식(Message Switching):
메시지 교환 방식은 전체 메시지를 전송하는 방식입니다.
전체 메시지가 송신자에서 수신자로 전송 → 각 메시지마다 수신 주소를 붙여서 전송
메시지를 전송하기 전에 메시지의 완전한 복사본이 생성되며 이러한 복사본이 네트워크를 통해 전송 → 전송 도중 오류 발생 시 메모리에 축적되어 있는 복사본 재전송 가능
메시지 교환 방식은 일반적으로 전송 시간이 일정하지 않고 비효율적일 수 있고, 송신 데이터 순서와 수신 순서 불일치
회선 교환 방식(Circuit Switching):
회선 교환 방식은 데이터 통신에 전용 회선을 할당하는 방식입니다.
송신자와 수신자 간의 연결을 설정하기 위해 미리 예약된 회선을 사용합니다.
전체 통신 경로가 전송 동안 고정되므로 전송 중에는 다른 통신이 불가능합니다.
전화 통화와 같은 음성 통신에 주로 사용되며, 대역폭이 일정하고 실시간 통신에 적합합니다.
패킷 교환 방식(Packet Switching):
패킷 교환 방식은 데이터를 작은 조각으로 나누어 전송하는 방식입니다.
데이터는 패킷으로 분할되고 각 패킷은 독립적으로 전송됩니다.
패킷은 도착지에서 재조립되며, 경로 중간에 다른 패킷과 섞일 수 있습니다.
인터넷과 같은 데이터 네트워크에서 주로 사용되며, 효율적이며 여러 통신이 동시에 공유할 수 있는 방식입니다.
Polling
불균형적인 멀티포인트 링크 구성 중 주 스테이션이 각 부 스테이션에게 데이터 전송을 요청하는 회선 제어 방식
'Computer Science > 정보처리기사 & 전산 필기' 카테고리의 다른 글
2018-3 정보처리기사 필기 기출 개념 정리 (오답 위주) (0) | 2023.11.03 |
---|---|
2018-2 정보처리기사 필기 기출 개념 정리 (오답 위주) (2) | 2023.11.02 |
2019-2 정보처리기사 필기 기출 개념 정리 소프트웨어공학, 데이터통신 (오답 위주) (0) | 2023.11.01 |
2019-2 정보처리기사 필기 기출 개념 정리 전자계산기구조, 운영체제 (오답 위주) (0) | 2023.10.31 |
2019-3 정보처리기사 필기 기출 개념 정리 (오답 위주) (0) | 2023.10.30 |