하늘모퉁이님이 정리하신 실기 복원 문제와, 세종사이버대학교 영상에서 올라온 것을 비교하여 실제 2022 임베디드기사 실기 문제임을 간파하여 이를 자세히 정리함.

<aside>

Q1. 리눅스에서 시스템 운용 중 생성되었다가 삭제되는 데이터를 임시 저장하기 위한 공간으로 사용되는 디렉토리는? 답 : /temp

<aside>

[ 해설 ]

/tmp : 각 장치에 필요한 socket이 위치하고 시스템에 필요한 임시 파일들을 만들고 삭제하는 디렉토리이다.

</aside>

</aside>

<aside>

Q2. CPU의 직접적인 개입 없이 I/O와 메모리 사이의 데이터 전송을 담당하는 것은?

답 : DMA (Direct Memory Address)

<aside>

[ 해설 ]

DMA는 특정 하드웨어 하위 시스템이 CPU와 독립적으로 시스템 메모리에 접근할 수 있게 해주는 컴퓨터 시스템의 기능이다.

</aside>

<aside>

Q3. 디바이스 드라이버 모듈을 register_chrdev() 함수로 커널에 등록하고, 커널 메모리를 request_region() 함수로 할당받는 리눅스 커널 함수는?

답 : module_init()

<aside>

[ 해설 ]

</aside>

<aside>

Q4. 스레드와 상호배제 구간을 정의하기 위한 동기화를 위한 변수는?

답 : 뮤텍스 (Mutex)

<aside>

[ 해설 ]

</aside>

<aside>

Q5. 아래 지문과 같이 결과값이 나오도록 빈칸에 알맞은 것을 모두 찾으시오.

답: b, c

<aside>

  1. p.number, p.name, p.grade
  2. p→number, p→name, p→grade;
  3. (*p).number, (*p).name, (*p).grade;
  4. (*p→number), (*p→name), (*p→grade); </aside>

<aside>

[ 해설 ]

이 문제에서는 p가 구조체 포인터임을 암묵적으로 가정하고 진행한다.

구조체에서 변수를 참조할 때 일반형이면 .을 사용하고, 포인터형이면 →을 사용해서 접근한다.

</aside>

</aside>

<aside>

Q6. 아래의 보기에서 인터럽트의 처리를 순서대로 배열하시오.

<aside>

(1) 인터럽트 요청

(2) 현재의 프로그램 상태 보존

(3) 인터럽트 핸들러 호출

(4) 인터럽트 핸들러가 실행

(5) 인터럽트 발생 시 저장한 주소로 복구

</aside>

답 : 1-2-3-4-5

<aside>

[ 해설 ]

인터럽트 (interrupt) : 프로그램 실행 중 입출력 하드웨어 등의 장치에 예외상황이 발생하여 처리가 필요할 경우 마이크로프로세서에 알려 처리할 수 있도록 하는 것

</aside>

<aside>

Q7. 프로그램 실행 시 실행 파일과 라이브러리가 연결되는 링크 방법은 무엇인가?

답 : 동적 링킹

<aside>

[ 해설 ]

동적 링킹 : 실행 가능한 목적 파일을 만들 때 프로그램에서 사용하는 모든 라이브러리 모듈을 복사하지 않고 해당 모듈의 주소만을 가지고 있다가, 런타임에 실행 파일과 라이브러리가 메모리에 위치될 때 해당 모듈의 주소로 가서 필요한 것을 들고 오는 방식

</aside>

</aside>

<aside>

Q8. 전원 공급이 계속되는 한 저장된 내용을 계속 기억하며, 리프레쉬 필요 없고 밀도가 낮고 비싼 소자는 무엇인가?

답 : SRAM

<aside>

[ 해설 ]

SRAM(Static Random-Access Memory) : 주기적으로 내용을 갱신해 주어야 하는 DRAM과는 달리 기억 장치에 전원이 공급되는한 그 내용이 계속 보존된다.

</aside>

</aside>

<aside>

Q9. 디스크 없는 임베디드 시스템에서 리눅스 로그 구조 파일 기반의 NAND 플래시 메모리를 사용한 저널링 파일 시스템은 무엇인가?

답 : JFFS2

<aside>

[ 해설 ]

JFFS2 : 저널링 플래시 파일 시스템 버전 2는 플래시 메모리 장치에 쓰이는 리눅스 로그 구조 파일 시스템이다.

</aside>

</aside>

<aside>

Q10. chmod 명령에서 8진수를 이용해서 파일 권한을 설정할 때 744를 파일 권한을 줄 때 ls -l 명령어로 표시되는 권한을 rwx로 표시하시오.

답 : rwxr--r--

</aside>

<aside>

Q11. BSD Socket를 이용해서 서버를 만들 때, 다음의 괄호에 들어가야 하는 함수는 무엇인가?

<aside>

socket( ) ⇒ ( ? ) ⇒ listen( ) ⇒ accept( ) ⇒ close( )

</aside>

답 : bind( )

</aside>

<aside>

</aside>

<aside>

</aside>

<aside>

</aside>

<aside>

</aside>

<aside>

</aside>

<aside>

</aside>

<aside>

</aside>