1.
XOR 게이트 1개와 AND 게이트 1개로 반가산기를 그리시오.
2.
malloc() 함수로 메모리를 할당 받은 후, 해제하는 함수는?
free()
3.
디바이스 드라이버에서 어떤 함수에 대한 설명인가?
register_chrdev() 함수로 커널에 등록하고, 커널 메모리를 request_region() 함수로 할당 받는다.
module_init()
4.
C 언어에서 문자열을 입력 받는 함수와 한 글자를 입력 받는 함수는?
gets(), getch()
- 개념
<참고자료>
- C언어에서 문자열을 입력 함수 : gets(), 한 글자를 입력 받는 함수 : getch()
- C언어에서 문자열을 출력 함수 : puts(), 한 글자를 입력 받는 함수 : putch()
5.
소프트웨어 기능을 검사하는 방법으로 동치 분할 검사, 경계값 검사 등을 수행하는 방법은?
- 개념
<참고자료>
- 블랙박스 테스트 : 소프트웨어 테스트 시에 내부구조를 파악하지 않고 입력과 출력 위주의 테스트 기법, 동적테스트 기법으로 동등분할, 경계값 분석, 입출력 그래프 분석, 오류 예측하는 테스트
- 화이트박스 테스트 : 구조 테스트라고도 하며 내부의 내용을 살펴본다는 의미로 유리박스 테스트라고 함
6.
다음 C 코드의 출력 결과는?
int data[] = {10, 20, 30, 40, 50};
int *s = data;
printf("%d", *(s+2)+10);
40
7.
커널에서 압축된 커널 이미지를 메모리에 로딩하고 실행하는 것은?
부트로더
- 개념
<참고자료>
- 부트로더 : 주기억장치에서 ROM부분은 (부트로더) 라고 불리는 초기화 프로그램을 저장하는데 이 프로그램은 전원이 켜졌을 때 컴퓨터 소프트웨어를 가동시키는 역할을 한다. 이 프로그램은 운영체제의 일부분을 디스크에서 주기억장치로 적재하고 제어를 운영체제로 옮겨준다
8.
데닝이 제안한 프로그램의 움직임에 관한 모델로 프로세스를 효과적으로 실행하기 위해 주기억장치에 유지되어야 하는 페이지의 집합은?
워킹 세트
9.
다음 C 코드의 출력 결과는?
int *s = malloc(sizeof(int));
*s = 10;
printf("%d", *s);
10
10.
주변 장치가 CPU를 경유하지 않고 직접 주기억 장치에 접근하는 것으로 CPU가 명령을 전달하고 다른 작업을 하다가 명령이 종료되어 인터럽트가 발생하면 처리되는 이것은?
DMA
- 개념
<참고자료>
- PC 입출력 방식의 유형
· Programmed I/O : CPU가 일정한 간격으로 I/O 장치의 송수신 데이터 유무를 확인
· Interrupt Driven I/O : 입출력 인터페이스가 주변장치 상태 값을 요청 (I/O 장치가 인터럽트 요구)
· DMA : CPU의 직접적인 개입 없이 I/O 장치와 메모리 사이의 데이터 전송을 담당하는 제어기
- DMA(Direct Memory Access) : CPU의 개입 없이 I/O 장치와 기억장치 사이의 데이터를 전송하는 기능을 수행하는 장치
- DMA의 동작 방식은 (Cycle Stealing)와 (Burst Mode) 두 가지가 존재한다. 이중 (Cycle Stealing) 방식은 DMA 제어기와 CPU가 버스를 공유하면서 CPU가 버스를 사용하지 않는 사이클만 버스에 접근하는 방식이며, (Burst Mode) 방식은 DMA제어기가 버스를 점유하여 I/O 처리를 수행하고, 완료되면 버스 점유를 해제하는 방식이다.
11.
RS 플립플롭에서 R과 S를 묶고 NOT 게이트를 추가한 플립플롭은?
12.
빈칸 A, B, C에 알맞는 용어는?
스레드 간의 동기화 기법에 대한 설명이다. 둘 이상의 스레드가 동시에 접근해서는 안되는 공유 자원은 (A)이다. 한 순간 공유자에 대해서 하나의 프로세스만 접근하는 방법은 (B)이다, 상호배제 기법 중에서 대기를 의미하는 P연산과 진입을 의미하는 V연산을 사용하는 것은 (C)이다
A : 임계영역, B: 상호배제, C: 세마포어
13.
Class Diagram의 연관 관계의 유형을 쓰시오

집합
14.
단일 인터럽트 선을 공유하고 연결 순서에 따라 우선순위를 결정하는 인터럽트 처리 방식은?
데이지 체인
- 개념
<참고자료>
- CPU 외부의 하드웨어적인 요구에 의해서 정상적인 프로그램의 실행순서를 변경하여 보다 시급한 작업을 먼저 수행한 후에 다시 원래 프로그램 복귀하는 것으로 소프트웨어 적인 (폴링방식)과 하드웨어적인 (데이지 체인)이 있다
15.
럼바우의 객체 모델링 종류 3가지를 쓰시오
객체, 동적, 기능
- 개념
<참고자료>
- 럼바우 분석기법(Rumbaugh) : 소프트웨어 구성 요소를 그래픽 표기법을 이용하여 모델링
가. 객체 모델링 : 객체 다이어그램으로 표시
나. 동적 모델링 : 상태 다이어그램(상태도)를 이용해 시간에 흐름에 따른 객체 표현
다. 기능 모델링 : 자료 흐름도(DFD)를 이용하여 다수의 프로세스들 간의 자료 흐름을 처리
16.
리눅스 커널 2.5부터 커널의 원자성을 디버깅 할 수 있는 기능이 강화되었는데, 아래 파라미터를 설명하시오.
config_debug_preempt=y
config_debug_kernel=y
config_debug_kallsyms=y
config_debug_spinlock_sleep=y
Debug preemptible kernel
Kernel Debugging
Load all symbols for debugging
Sleep inside spinlock checking
- 개념
ㄴ config_debug_preempt : 커널 코드에서 선점이 안전하지 않은 방향으로 갈 때 warning을 출력
ㄴ config_debug_kernel : 커널 디버깅 옵션을 가능하도록 하는 옵션
ㄴ config_debug_kallsyms : 빌드시 커널 심볼 정보를 넣도록 함
ㄴ config_debug_spinlock_sleep : 락을 들고있는 동안에 sleep 상태로 가려고 시도하는 것을 체크
17.
실행 중인 프로세스의 상태를 저장하고 다른 프로세스로 전환하는 작업은?
문맥교환 (context switching)
- 개념
<참고자료>
- Context Switching 또는 Interrupt에 의한 분기 시에 실행되는 프로그램의 상태 정보와 CPU의 Flag 정보를 저장하는 정보에 대한 집합을 PSW 라고 한다
- PSW(Program Status Word) : CPU의 모든 상태에 대한 정보를 저장하는 집합
18.
POSIX 계역의 thread 생성 함수는?
pthread_create()
- 개념
<참고자료>
- posix 계열에서 thread를 사용하기 위한 헤더 : #include <pthread.h>
- posix 계열에서 thread를 생성 : pthread_create()
- posix 계열에서 thread를 종료 : pthread_join()
19.
다음 디바이스 코드의 빈칸 (A) 을 답하시오
int init_module(void)
{
int retval;
retval = (A) (INT, &interrupt_service_rt, SA_INTERRUPT, "Button_IN", NULL);
if(retval < 0)
printk( KERN_ERR "%s: Request for IRQ
%d failed\n", __FUNCTION__,INT );
else {
set_GPIO_IRQ_edge (1 << INT, GPIO_RISING_EDGE);
enable_irq(INT);
}
return 0;
}
'임베디드 기사 > 실기 - 기출문제' 카테고리의 다른 글
| 2020년 임베디드 기사 실기 기출문제 (0) | 2023.10.02 |
|---|---|
| 2019년 임베디드 기사 실기 기출문제 (0) | 2023.10.02 |
| 2017년 임베디드 기사 실기 기출문제 (0) | 2023.10.02 |
| 2016년 임베디드 기사 실기 기출문제 (0) | 2023.10.02 |
| 2015년 임베디드 기사 실기 기출문제 (0) | 2023.10.02 |
