20200820 정처기 필기
데이터베이스
관계해석 '모든 것에 대해서' 의 의미를 나타내는 기호?
- ∀ (거꾸로 A, all)
- A ∈ B A가 B에 속함
- U 합집합
터미널 노드란?
자식 노드가 없는 노드
순수 관계연산자에서 릴레이션의 일부 속성만 추출해 중복 튜플은 제거하고 새 릴레이션 생성하는 연산자는?
- Select: 릴레이션에 존재하는 튜플 중 선택조건을 만족하는 튜플의 부분집합으로 새 릴레이션
- Project: 주어진 릴레이션에서 속성 List에 제시된 어트리뷰트만 추출
- Join: 공통 속성을 중심으로 2개의 릴레이션을 하나로 합쳐 새 릴레이션
- Division: 조인한 후 부모 릴레이션에서 자식을 제외한 속성만 구하는 연산
한 릴레이션의 기본 키를 구성하는 어떤 속성도 Null이나 중복일 수 없음을 의미하는 것은?
- 개체 무결성 제약 조건
- 참조 무결성 제약 조건: 외래키 값은 null이나 참조 릴레이션의 기본키와 동일해야 함
- 도메인 무결성 제약 조건: 특정 속성의 값이 그 도메인에 맞는 값이어야 함(number인데 문자 x)
- 키 무결성 제약 조건 (함정): 없음
순서가 A, B, C, D로 정해진 자료를 스택에 넣었다 출력한 결과로 틀린 것
순서는 무조건 ABCD이며 push pop 순서는 상관없이 나올 수 없는 결과값만 찾아라
제 2 정규형에서 제 3 정규형이 되기 위한 조건은?
비정규 릴레이션 -> (도메인 원자값) -> 1정규형 ->
(부분적 함수 종속 제거) -> 2정규형 ->
(이행적 함수 종속 제거) -> 3정규형 ->
(결정자이며 후보키 아닌 것 제거) -> BC정규형 ->
(다치 종속 제거) -> 4정규형 ->
(조인 속성사용) -> 5정규형
다음의 관계 대수식을 SQL 질의로 옳게 표현한 것?
πA (σP (r1|X|r2))
πA: select A
σP: where P
r1|X|r2: r1 join r2 , from r1,r2
스택의 삭제 알고리즘
if (top === 0) {
return; = underflow;
} else {
remove s(top);
top -= 1;
}
현재 포인터가 0이면 함수를 종료
관계 데이터베이스에 있어 관계 대수 연산이 아닌 것은?
- division
- project
- join
- fork
관계대수연산: select, project, join, division
전자 계산기 구조
PE(procession element) 연산기 사용해 동기적 병렬 처리 수행하는 것은?
동기적 병렬처리 수행은 array processor: vector라 불리는 다수의 데이터를 동시 처리
답 Vector processor
반가산기에서 입력을 X,Y 라 할 떄 출력 부분의 캐리값은?
- 캐리 값: 자리 올림값
- 캐리값은 입력값 X와 Y가 모두 1이어야 1이 된다. 즉, X*Y
- 답은 XY
연산자수 구하기
캐시 엑세스 시간 11초, 주기억장치 엑세스 시간이 20초 캐시 적중률이 90%일 때 기억장치 평균 엑세스 시간은?
- 캐시 엑세스 시간 + 주기억장치 엑세스 시간 * {(100 - 캐시 적중률)/100}
- 11 + 20 * 0.1 = 13
Flynn의 컴퓨터 시스템 분류 제안 중 하나의 데이터 흐름이 다수 프로세서로 전달되며, 각 프로세서는 서로 다른 명령어를 실행하는 구조는?
전가산기를 구성하기 위해 필요한 소자는?
- 두 개의 반가산기, 한 개의 OR 게이트(암기)
프로그램 제어와 가장 밀접한 관계가 있는 레지스터는?
- memory address register: 기억장치를 출입하는 데이터 번지(포인터)를 기억하는 레지스터
- index register: 주소의 변경, 서브루틴 연결 및 프로그램에서 반복 연산의 횟수를 세는 레지스터, 내용 변경 가능
- accumulator: 누산기, 연산된 결과를 일시적으로 저장, 연산의 핵심
- status resigter: 상태 레지스터, 오버플로우, 언더플로우, 자리올림, 계산상태, 인터럽트 등 psw를 저장, 프로그램 제어와 밀접한 관계
DMA 제어기가 한 번에 한 데이터 워드를 전송하고, 버스의 제어를 CPU에게 돌려주는 방법은?
- DMA 대량 전송
- 데이지체인
- 사이클 스틸링: CPU가 어떤 명령과 다음 명령을 수행하는 사이 하나의 데이터 워드를 직접 전송, CPU와 입출력 장치가 동시에 주기억장치에 접근할 때 주기억장치의 사이클타임을 CPU에서 뺏어와(스틸링) CPU는 주기억장치에 접근 불가
- 핸드쉐이킹
레지스터 A와 B에 8진수 7000과 2345가 저장됐을 때, 두 레지스터의 AND 연산값은?
- 7000과 2345 2진수 변환후 AND 연산
- 7000: 111 000 000 000
- 2345: 010 011 100 101
- 결과: 010 000 000 000 -> 2 0 0 0
운영체제(중요)
파일 구조 중 순차편성에 대한 설명으로 옳지 않은 것은?
- 특정 레코드를 검색할 때, 순차적 검색 하므로 검색효율이 높다. -> list와 map의 차이와 비슷
- 어떠한 기억매체에서도 실현 가능하다.
- 주기적으로 처리한 경우에 시간적, 처리시간, 비용이 적다.
- 순차적으로 실제 데이터만 저장되므로 기억공간 활용률이 높다.
파일 디스크립터에 관한 설명으로 옳지 않은 것은?
- 사용자가 직접 참조할 수 있다. -> 파일 디스크립터는 파일 시스템이 관리하므로 사용자가 직접 참조할 수 없다.
- 파일마다 독립적으로 존재하며, 시스템에 따라 다른 구조를 가질 수 있다.
- 대개 보조기억장치에 저장되어 있다가 해당 파일이 열릴(Open) 때 주기억장치로 이동한다.
- 파일을 관리하기 위해 시스템(운영체제)이 필요로 하는 파일에 대한 정보를 갖고 있는 제어블록(FCB)이다.
지역성에 대한 설명으로 옳지 않은 것은?
- 프로세서들은 기억장치 내의 정보를 균일하게 접근하는 것이 아니라. 어느 한 순간에 특정부분을 집중적으로 참조한다.
- 시간 지역성의 예로 순환, 부프로그램, 스택 등이 있다.
- 공간 지역성은 하나의 기억장소가 가까운 장래에도 참조될 가능성이 높음을 의미한다. -> 시간 지역성에 대한 설졍
- 공간 지역성의 대표적인 예로 순차적 코드의 실행이 있다.
- 공간 지역성: 프로세서 실행 시 일정 위치 페이지 집중적 엑세스
스레드에 관한 설명으로 옳지 않은 것은?
- 하드웨어, 운영체제의 성능과 응용프로그램의 처리율을 향상시킬 수 있다.
- 스레드는 그들이 속한 프로세스의 자원과 메모리를 공유한다.
- 다중 프로세스 구조에서 각 스레드는 다른 프로세스에서 병렬로 실행될 수 있다.
- 스레드는 동일 프로세스 환경에서 서로 다른 독립적인 다중수행이 불가능하다. -> 스레드 간 독립적인 수행 가능
SJF(Short Job First) 스케줄링에서 평균 반환시간과 평균 대기시간
- SJF: 실행시간이 가장 짧은 프로세스에 먼저 CPU를 할당하는 기법
- 반환시간: 작업을 마치고 결과값을 가져오는 시간
- 대기시간: 이전 작업을 처리할 떄 까지 기다리는 시간
파일 디스트립터 정보에 포함되지 않은 것은?
- 파일 구조
- 파일 유형
- 파일 작성자
- 파일 크기
- 파일 디스크립터는 시스템에서 관리하는 정보, 작성자는 굳이?
세그먼트 테이블과 실제 주소(단 가상주소는 S=(2, 100))
- S=(세그먼트 번호, 실제 주소)
- 세그먼트 번호의 시작주소 + 실제 주소
공유자원을 어느 시점에서 단지 한 개의 프로세스만이 사용할 수 있도록 하며, 다른 프로세스가 공유자원에 대해 접근하지 못하게 제어하는 기법은?
- mutual exclusion: 상호 배제, 특정 프로세스가 공유 자원을 쓰고 있으면 다른 프로세스가 못 쓰게 제어하는 기법
- critical section: 임계 구역, 여러 개 프로세스가 공유하는 데이터에 대해 어느 한 시점에는 하나의 프로세스만 사용하도록 제어
- deadlock: 교착 상태, 두 개 이상 작업이 서로 끝나길 기다려 아무것도 완료되지 않는 상태
- scatter loading
블록의크기가 1KB(kilo byte)이고 각 블럭마다 총 256개의 블럭 주소를 담을 수 있다고 할 때, 파일의 크기가 1MB(mega byte)라면 몇 단계의 간접 인덱싱이 필요한가? (단, UNIX에서 i-node를 사용하여 간접 인덱싱을 한다고 가정한다.)
- 1 단계
- 2 단계
- 3 단계
- 4 단계
- 1 단계: 256 * 1kb
- 2 단계: 256 256 1kb
- n 단계: 256^n * 블록 크기
다음 설명에 해당하는 디렉토리 구조는?
- 부 디렉토리의 공동사용 가능
- 디스크, 공간 절약
- 하나의 파일이나 디렉토리가 여러 경로 가능
- 공유하고 있는 파일 제거시 떨어진 포인터 문제 발생
- 비순환 그래프 디렉토리 시스템: 하위 파일이나 디렉토리 공동 사용가능하며 사이클 허용되지 않음, 공유파일 삭제 시 떨어진 포인터 문제 발생
- 트리구조 디렉토리 시스템: 하나의 루트와 여러 개의 서브 디렉토리, 동일한 이름 파일이나 디렉토리 가능
- 1단계 디렉토리 시스템: 모든 파일이 하나의 디렉토리 내 위치, 제일 간단, 파일 많아지면 복잡
- 2단계 디렉토리 시스템: 중앙에 마스터, 아래에 사용자 별 다른 파일 디렉토리 있는 2계층 구조, 다른 디렉토리에서만 같은 파일명 가능
다음 중 교착상태가 발생할 수 있는 필요충분조건은?
- 중단 조건
- 환형 대기
- 기아 상태
- 동기화
- 교착상태의 필요충분조건
- 상호배제: 한 번에 한 프로세스만 자원 사용
- 점유와 대기: 다른 자원이 할당되기 기다리는 동안 확보한 자원 계속 보유
- 비선점: 강제로 빼앗을 수 없다
- 환형대기: 서로간 요구관계가 회전
FCFS 알고리즘 사용할 때, 임의의 작업 순서로 얻을 수 있는 최대 평균 반환시간 - 최소 평균 반환 시간
- FCFS는 대기시간이 긴 프로세스부터 처리(SJF와 반대)
- 짧은 순으로 오면 최소 평균
- 긴 순으로 오면 최대 평균
완전연결형 분산처리 시스템에 관한 설명으로 옳지 않은 것은?
- 각 사이트들이 시스템 내의 다른 모든 사이트들과 직접 연결된 구조이다.
- 하나의 링크가 고장 나더라도 다른 링크를 이용할 수 있다.
- 사이트 수가 n개이면 링크 연결 수는 n-1개이다. -> n(n-1)/2개 사이트가 모두 연결돼 있음
- 기본비용은 많이 들지만 통신비용은 적게 들고, 신뢰성이 높다.
소프트웨어 공학
NS차트(Nassi-Schneiderman chart)에 대한 설명으로 가장 옳지 않은 것은?
- 논리의 기술에 중점을 두고 도형을 이용한 표현 방법이다.
- 이해하기 쉽고 코드 변환이 용이하다.
- 화살표나 GOTO를 사용하여 이해하기 쉽다.
- 연속, 선택, 반복 등의 제어 논리 구조를 표현한다.
- NS 차트는 화살표가 없고, 입구 출구는 하나, GOTO는 사용 불가
일정 계획과 가장 관계가 없는 것은?
- 프로그램 - 명세서
- 작업 분해
- CPM 네트워크
- 간트 차트(Cant Chart)
- 일정 계획 기법: 작업 분해 - PERT/CPM - 간트 차트
소프트웨어 재공학은 어떤 유지보수 측면에서 소프트웨어 위기를 해결하기 위한 방법인가?
- Preventive maintenance: 장래의 유지보수성, 신뢰성 개선이나 오류발생에 대비해 예방 수단을 강구하는 활동, 소프트웨어 재공학
- Corrective maintenance: 시스템을 운영하면서 수정 교정 정정 하자보수
- Perfective maintenance: 본래 기능에 새 기능 추가하거나 성능 개선위해 소프트웨어 확장하는 활동
- Adaptive maintenance:
자료흐름도(DFD)의 작성 지침이라고 볼 수 없는 것은?
- 자료는 처리를 거쳐 변환될 때마다 새로운 명칭을 부여해야 한다.
- 자료흐름도의 최하위 처리(process)는 소단위명세서를 갖는다.
- 배경도(context diagram)에도 명칭과 번호를 부여해야 한다.
- 어떤 처리(process)가 출력자료를 산출하기 위해서는 필요한 자료가 반드시 입력되어야 한다.
소프트웨어 비용 산정 기법 중 산정 요원과 조정자에 의해 산정하는 방법은?
- 기능 점수 기법: 기능의 갯수로 개발 규모 측정
- LOC 기법: line of code, 코드 라인 수로 측정
- COCOMO 기법: loc와 동일
- 델파이 기법: 산정 요원과 조정자에 의해 산성(통계의 델파이, 여러 사람이 같이)
자료사전에서 자료의 연결(“and")을 나타내는 기호는?
- +: AND
- =: 정의
- ( ): 생략가능
- { }: 반복
다음 중 가장 높은 응집도(Cohesion)에 해당하는 것은?
- 순서적 응집도(Sequential Cohesion)
- 시간적 응집도(Temporal Cohesion)
- 논리적 응집도(Logical Cohesion)
- 절차적 응집도(Procedural Cohesion)
- 응집도는 논리적 -> 시간적 -> 절차적 -> 순서적 순으로 응집도가 높다. 결합도가 낮을 수록 응집도는 높다.
다음 중 독립적인 모듈이 되기 위해서 가장 좋은 결합도 상태는?
- control coupling
- stamp coupling
- common coupling
- content coupling
- 결합도는 자료 결합도 - 스탬프 결합도 - 제어 - 외부 - 공통 - 내용 순으로 높다.
- 결합도가 낮을 수록 응집력과 독립성이 커진다.
DFD(Data Flow Diagram)에 대한 설명으로 거리가 먼 것은?
- 단말(Terminator)은 원으로 표기한다. -> 사각형으로 표시
- 구조적 분석 기법에 이용된다.
- 자료 흐름과 기능을 자세히 표현하기 위해 단계적으로 세분화된다.
- 자료 흐름 그래프 또는 버플(Bubble)차트라고도 한다.