정보처리기사 2020 1, 2회 통합 기출문제 풀이 - 4과목 ( 오답 )
본문 바로가기
정보처리기사/정보처리기사 필기

정보처리기사 2020 1, 2회 통합 기출문제 풀이 - 4과목 ( 오답 )

by 코딩하는 핑가 2020. 8. 18.
반응형

4과목 : 프로그래밍 언어 활용

( CBT모의고사 기준 틀린 문항 : 64, 65, 66, 68, 69, 71, 72, 73, 75 )

* 키워드 : 결합도, 은행가알고리즘(교착상태 해결방법), UNIX 시스템의 구성, OSI참조모델, IPv6, 프로세스 상태, 스레드, HRN, C언어변수명규칙

64. 시스템에서 모듈 사이의 결합도(Coupling)에 대한 설명으로 옳은 것은?

1. 한 모듈 내에 있는 처리요소들 사이의 기능적인 연관 정도를 나타낸다.

2. 결합도가 높으면 시스템 구현 및 유지보수 작업이 쉽다.

3. 모듈간의 결합도를 약하게 하면 모듈 독립성이 향상된다.

4. 자료결합도는 내용결합도보다 결합도가 높다.

더보기

정답 및 해설

3. 모듈간의 결합도를 약하게 하면 모듈 독립성이 향상된다.

* 보기 풀이

1. 응집도 설명

2. 결합도가 높으면 시스템 구현 및 유지보수 작업이 어려움

3. 자료 결합도는 내용 결합도보다 결합도가 낮음

* 결합도(Coupling)

- 모듈 간에 상호 의존하는 정도 또는 두 모듈 사이의 연관 관계를 의미한다.

- 다양한 결합으로 모듈을 구성할 수 있으나 결합도가 약할수록 품질이 높고, 강할수록 품질이 낮다.

- 결합도가 강하면 시스템 구현 및 유지보수 작업이 어렵다.

- 종류(낮음->높음)

: 자료 결합도(Data Coupling) : 모듈 간의 인터페이스가 자료 요소로만 구성될 때의 결합도

  스탬프(검인) 결합도(Stamp Coupling) : 모듈 간의 인터페이스로 배열이나 레코드 등의 자료 구조가 전달될 때의 결합도

  제어 결합도(Control Coupling) : 어떤 모듈이 다른 모듈 내부의 논리적인 흐름을 제어하기 위해 제어 신호를 이용하여 통신하고나 제어 요소를 전달하는 결합도

  외부 결합도(Extermal Coupling) : 어떤 모듈에서 외부로 선언한 데이터(변수)를 다른 모듈에서 참조할 때의 결합도

  공통 결합도(Common Coupling)

  내용 결합도(Content Coupling) : 내부 기능 공유 정도

* 응집도(Cohesion)

- 모듈 내부의 처리 요소들 간의 기능적 연관도, 독립적인 기능으로 정의

- 응집도가 강할수록 좋음

- 종류(강함 -> 약함)

: 기능적(Functional) -> 순자척(Sequential) -> 교환(통신)적 응집도(Communication) -> 절차적(Procedural) -> 시간적(Temporal) -> 논리적(Logical) -> 우연적(Coincidental)

 

65. 은행가 알고리즘(Banker's Algorithm)은 교착상태의 해결 방법 중 어떤 기법에 해당하는가?

1. Avoidance

2. Detection

3. Prevention

4. Recovery

더보기

정답 및 해설

1. Avoidance

 

* 교착상태(Dead Lock)

자원을 점유한 상태에서 다른 프로세스가 점유하고 있는 자원을 요구하며 무한정 기다리는 현상

필요충분 조건 : Mutual Exclusion, Hold and Wait, Non-preemption, Circualr Wait

 

  상호배제
Mutual Exclusion
점유와 대기
Hold and Wait
비선점
Non-preemption
환형 대기
Circualr Wait
교착상태
필요충분조건
- 공유 자원 사용
한 번에 한 개
- 최소 하나의 자원 대기
- 추가 점유를 위한 대기 프로세스 존재
- 다른 프로세스에 할당된 자원은 사용이 끝날 때까지 강제로 빼앗을 수 없어야 함 - 원형 구성
- 자신에게 할당된 자원을 점유하면서 앞이나 뒤에 있는 프로세스의 자원을 요구
해결방법
예방 기법
Prevention

사전 시스템 제어,
하나를 제거(부정)
- 공유 자원 사용
한 번에 여러 개
- 실행 전 모든 자원 할당
- 프로세스 대기 없애기
- 자원이 점유되지 않은 상태에서만 자원을 요구하도록 함
- 자원을 점유하고 있는 프로세스가 다른 자원을 요구할 때 점유하고 있는 자원을 반납하고, 요구한 자원을 사용하기 위해 기다리게 함 - 자원 선형 분류
- 고유 번호 할당

- 각 프로세스는 현재 점유한 자원의 고유 번호보다 앞이나 뒤 어느 한쪽 방향으로만 자원을 요구
회피 기법
Avoidance
- 교착상태가 발생할 가능성을 배제하지 않고 교착상태가 발생하면 적절히 피해나가는 방법
- 교착상태가 발생할 수 있는 상태를 불안전 상태라고 함

( 불안전 상태의 모든 시스템은 교착상태가 아님 )
발견 기법
Detection
- 시스템에 교착 상태가 발생했는지 점검하여 교착 상태에 있는 프로세스와 자원을 발견
- 자원 할당 그래프 등을 사용
회복 기법
Recovery
- 교착 상태를 일으킨 프로세스를 종료하거나 교착 상태의 프로세스에 할당된 자원을 선점하여 프로세스나 자원을 회복하는 것

 

 

66. UNIX의 쉘(Shell)에 관한 설명으로 옳지 않은 것은?

1. 명령어 해석기이다.

2. 시스템과 사용자 간의 인터페이스를 담당한다.

3. 여러 종류의 쉘이 있다.

4. 프로세스, 기억장치, 입출력 관리를 수행한다.

더보기

​정답 및 해설

4. 프로세스, 기억장치, 입출력 관리를 수행한다.

 

* UNIX 시스템의 구성

커널
Kernel
- UNIX의 가장 핵심적인 부분
- 하드웨어를 보호(캡슐화)하고, 프로그램들과 하드웨어 간의 인터페이스 역할을 담당
- 프로세스, 기억장치, 파일, 입출력관리, 프로세스 간 통신, 데이터 전송 및 변환 등 여러 가지 기능을 수행함
- 컴퓨터 부팅 시 주기억장치에 적재되어 상주하면서 실행

Shell
- 사용자의 명령어를 인식하여 프로그램을 호출하고, 명령을 수행하는 명령어 해석기
- 시스템과 사용자 간의 인터페이스를 담당함
- DOS의 COMMAND.COM과 같은 기능을 수행함
- 주기억장치에 상주하지 않고, 명령어가 포함된 파일 형태로 존재하며 보조기억장치에서 교체 처리가 가능함
- 종류 : Bourne Shell, C Shell, Korn Shell 등

 

 

68. OSI-7계층에서 종단간 신뢰성이 있고 효율적인 데이터를 전송하기 위해 오류검출과 복구, 흐름제어를 수행하는 계층은?

1. 전송 계층

2. 셰션 계층

3. 표현 계층

4. 응용 계층

더보기

​정답 및 해설

1. 전송 계층

 

* OSI(Open System Interconnection) 참조 모델

다른 시스템 간의 원활한 통신을 위해 ISO에서 제안한 통신 규약(Protocol)

- 하위 계층 : 물리 계층 -> 데이터 링크 계층 -> 네트워크 계층

- 상위 계층 : 전송 계층 -> 세션 계층 -> 표현 계층 -> 응용 계층

 

- 물리 계층(Physical Layer)

: 전송에 필요한 두 장치 간의 실제 접속과 절단 등 기계적, 전기적, 기능적, 절차적 특성에 대한 규칙을 정의함

- 데이터 링크 계층(Data Link Layer)

: 두 개의 인접한 개방 시스템들 간에 신뢰성 있고 효율적인 정보 전송을 할 수 있도록 함

흐름 제어, 프레임 동기화, 오류 제어, 순서 제어

- 네트워크 계층(Network Layer, 망 계층)

: 개방 시스템들 간의 네트워크 연결을 관리하는 기능과 데이터의 교환 및 중계 기능을 함

경로 설정(Routing), 트래픽 제어, 패킷 정보 전송

 

- 전송 계층(Transport Layer)

: 종단 시스템(End-to-End) 간의 전송 연결 설정, 데이터 전송, 연결 해제 기능을 함

주소 설정, 다중화(데이터의 분할과 재조립), 오류 제어, 흐름 제어

- 세션 계층(Session Layer)

: 송 수신 측 간의 관련성을 유지하고 대화 제어를 담당함

대화(회화) 구성 및 동기 제어, 데이터 교환 관리 기능

- 표현 계층(Presentation Layer)

: 응용 계층으로부터 받은 데이터를 세션 계층에 맞게, 세션 계층에서 받은 데이터는 응용 계층에 맞게 변환

코드 변환, 데이터 암호화, 데이터 압축, 구문 검색, 정보 형식(포맷) 변환, 문맥 관리 기능

- 응용 계층(Application Layer)

: 사용자(응용 프로그램)가 OSI 환경에 접근할 수 있도록 응용 프로세스 간의 정보 교환, 전자 사서함, 파일 전송, 가상 터미널 등의 서비스를 제공함

 

69. IPv6의 주소체계로 거리가 먼 것은?

1. Unicast

2. Anycast

3. Broadcast

4. Multicast

더보기

정답 및 해설

3. Broadcast

 

* IPv4 : Unicast, Multicast, Broadcast

 

71.프로세스 상태의 종류가 아닌 것은?

1. Ready

2. Running

3. Request

4. Exit

더보기

​정답 및 해설

3. Request

 

* 프로세스 상태 전이

- 제출(Submit) : 작업을 처리하기 위해 사용자가 작업을 시스템에 제출한 상태

- 접수(Hold) : 제출된 작업이 스풀 공간인 디스크의 할당 위치에 저장된 상태

- 준비(Ready) : 프로세스가 프로세서를 할당받기 위해 기다리고 있는 상태

- 실행(Run) : 준비상태 큐에 있는 프로세스가 프로세서를 할당받아 실행되는 상태

- 대기(Wait), 블록(Block) : 프로세스에 입출력 처리가 필요하면 현재 실행 중인 프로세스가 중단되고 입출력처리가 완료될 때까지 대기하고 있는 상태

- 종료(Terminated, Exit) : 프로세스의 실행이 끝나고 프로세스 할당이 해제된 상태

 

* 프로세스 상태 전이 관련 용어

- Dispatch : 준비 상태에서 대기하고 있는 프로세스 중 하나가 프로세서를 할당받아 실행 상태로 전이되는 과정

- Wake Up : 입출력 작업이 완료되어 프로세스가 대기 상태에서 준비 상태로 전이되는 과정

- Spooling : 입출력장치의 공유 및 상대적으로 느린 입출력장치의 처리 속도를 보완하고 다중 프로그래밍 시스템의 성능을 향상시키기 위해 입출력할 데이터를 직접 입출력장치에 보내지 않고 나중에 한꺼번에 입출력하기 위해 디스크에 저장하는 과정

 

72. 스레드(Thread)에 대한 설명으로 옳지 않은 것은?

1. 한 개의 프로세스는 여러 개의 스레드를 가질 수 없다.

2. 커널 스레드의 경우 운영체제의 의해 스레드를 운용한다.

3. 사용자 스레드의 경우 사용자가 만든 라이브러리를 사용하여 스레드를 운용한다.

4. 스레드를 사용함으로써 하드웨어, 운영체제의 성능과 응용 프로그램의 처리율을 향상시킬 수 있다.

더보기

정답 및 해설

1. 한 개의 프로세스는 여러 개의 스레드를 가질 수 없다.

 

* 스레드(Thread)

- 하나의 프로세스 내에서 시스템의 여러 자원을 할당받아 실행하는 프로그램의 단위

- 프로세서의 생성이나 문맥 교환 등의 오버헤드가 줄어 운영체제의 성능이 개선

- 동일 프로세스 환경에서 서로 독립적인 다중 수행이 가능

- 사용자 수준의 스레드는 사용자가 만든 라이브러리를 사용하여 스레드를 운용함.(커널에 의해 스레드 운용X)

- 하나의 프로세스에 하나의 스레드가 존재하는 경우에는 단일 스레드, 하나 이상의 스레드가 존재하는 경우에는 다중 스레드라고 한다.

- 프로세스의 일부 특성을 갖고 있기 때문에 경량(Light Weight) 프로세스라고도 한다.

- 스레드 기반 시스템에서 스레드는 독립적인 스케줄링의 최소 단위로서 프로세스의 역할을 담당한다.

 

* 분류

- 사용자 수준의 스레드

: 사용자가 만든 라이브러리를 사용하여 스레드를 운용한다. 속도는 빠르지만 구현이 어렵다.

- 커널 수준의 스레드

: 운영체제의 커널에 의해 스레드를 운용한다. 구현이 쉽지만 속도가 느리다.

73. HRN(Highest Response-ratio Next) 스케줄링 방식에 대한 설명으로 옳지 않은 것은?

1. 대기 시간이 긴 프로세스의 경우 우선 순위가 높아진다.

2. SJF 기법을 보완하기 위한 방식이다.

3. 긴 작업과 짧은 작업 간의 지나친 불평등을 해소할 수 있다.

4. 우선 순위를 계산하여 그 수치가 가장 낮은 것부터 높은 순으로 우선 순위가 부여된다.

더보기

​정답 및 해설

4. 우선 순위를 계산하여 그 수치가 가장 낮은 것부터 높은 순으로 우선 순위가 부여된다.

 

* HRN(Hightest Response-ratio Next)

- 비선점 스케줄링

- 실행 시간이 긴 프로세스에 불리한 SJF 기법을 보완하기 위한 것으로, 대기 시간과 서비스(실행) 시간을 이용하는 기법이다.

- 우선순위 계산 공식을 이용하여 서비스(실행) 시간이 짧은 프로세스나 대기 시간이 긴 프로세스에게 우선순위를 주며 CPU를 할당한다.

- 서비스 실행 시간이 짧거나 대기 시간이 긴 프로세스일 경우 우선순위가 높아진다.

- 우선순위를 계산하여 그 숫자가 가장 높은 것부터 낮은 순으로 우선순위가 부여된다.

- 계산식 : (대기 시간+서비스 시간) / 서비스 시간

https://ss-o.tistory.com/7?category=936854

 

75. C언어에서 사용할 수 없는 변수명은?

1. student2019

2. text-color

3. _korea

4. amount

더보기

정답 및 해설

2. text-color

 

* 변수명 작성 규칙

- 사용 가능 : 영문자, 숫자, _

- 사용 불가능 : 공백, *, +, -, /, 등의 특수문자, 예약어

- 첫 글자는 영문자나 _로 시작해야하며, 숫자는 올 수 없다.

- 글자 수 제한 X

- 대 소문자 구분

- 변수 선언 시 문장 끝에 반드시 세미콜론(;) 붙여야 함

* 이 게시물은 시나공과 이기쥬히 정보처리기사 요약집을 참고로 작성되었습니다.

 

* 기출문제 풀이

2020/08/12 - [정보처리기사/1과목 소프트웨어 설계] - 정보처리기사 2020 1, 2회 통합 기출문제 풀이 - 1과목 ( 오답 )

2020/08/12 - [정보처리기사/2과목 소프트웨어 개발] - 정보처리기사 2020 1, 2회 통합 기출문제 풀이 - 2과목 ( 오답 )

2020/08/12 - [정보처리기사/3과목 데이터베이스 구축] - 정보처리기사 2020 1, 2회 통합 기출문제 풀이 - 3과목 ( 오답 )

2020/08/18 - [정보처리기사/4과목 프로그래밍언어 활용] - 정보처리기사 2020 1, 2회 통합 기출문제 풀이 - 4과목 ( 오답 )

2020/08/19 - [정보처리기사/5과목 정보시스템 구축관리] - 정보처리기사 2020 1, 2회 통합 기출문제 풀이 - 5과목 ( 오답 )

반응형

댓글