CPU/메모리 Memory
문제편
1. 컴퓨터의 3대 구조에 대하여 설명하시오.
2. 하이퍼스레딩과 CPU Burst에 대해 설명하시오.
3. CPU 스케쥴링 중 기아와 노화에 대해 설명하시오.
4. CPU 스케쥴링 중 타임슬라이스와 FCFS의 차이에 대해 설명하시오.
5. 스택과 큐의 차이에 대해 설명하시오.
6. 메모리 over commit과 swap에 대하여 설명하시오.
7. 버퍼와 메모리 누수에 대해 설명하시오.
8. 메모리 외부 단편화와 내부 단편화의 차이에 대해 설명하시오.
9. 페이지와 프레임의 차이에 대해 설명하시오.
10. OOM Killer에 대해 설명하시오.
11. x86, x64, AMD, ARM에 대하여 설명하시오.
해답편
1. 컴퓨터의 3대 구조에 대하여 설명하시오.
=> CPU, 메모리, 디스크
2. 하이퍼스레딩과 CPU Burst에 대해 설명하시오.
=>
- 하이퍼스레딩 : 1코어당 여러 스레드를 동시에 가능하게 하는 것.
- CPU Burst : 프로세스가 CPU를 사용하는 시간.
3. CPU 스케쥴링 중 기아와 노화에 대해 설명하시오.
=>
- 기아 : 프로세스가 우선순위에서 계속 밀려 결국 끝까지 자원을 못 쓰게 되는 것.
- 노화 : 기아를 방지하기 위해, 기다린 프로세스의 우선순위를 시간이 지날수록 높여주는 것
4. CPU 스케쥴링 중 타임슬라이스와 FCFS의 차이에 대해 설명하시오.
=>
- 타임슬라이스 : 프로세스당 자원을 동일한 시간만큼 쓰도록 공정하게 분배
- FCFS : 먼저 도착한 프로세스대로 자원을 쓰도록 분배
5. 스택과 큐의 차이에 대해 설명하시오.
=> 데이터를 관리하는 구조에 있어서, A B C D E 순으로 저장하면
- 스택 : LIFO. 후입선출. 빼낼 땐 E D C B A
- 큐 : FIFO. 선입선출. 빼낼 땐 A B C D E
6. 메모리 over commit과 swap에 대하여 설명하시오.
==>
- Overcommit : 가상 메모리에 할당된 제한보다 더 많이 실제 메모리를 사용할 수 있도록 해주는 것. 과용되면 시스템 충돌을 일으킨다.
- swap : 메모리 부족으로 디스크 영역까지 빌려 사용하는 것. 디스크 IOPS문제나 성능 문제를 야기할 수 있다.
7. 버퍼와 메모리 누수에 대해 설명하시오.
==>
- 버퍼 Buffer : 메모리에 있는 데이터의 임시 저장 영역. 데이터를 하나씩 옮기는 것보다 한꺼번에 옮기는 게 더 나은 상황(예를 들어 문서를 열었는데 한 번에 열리는 게 아니라 한 글자씩 메모리를 왔다갔다하며 열린다면 비효율적일 것)에서 사용한다.
- 메모리 누수 : 실제 사용이 끝났지만, 사용 중으로 간주되어 놀고 있는 메모리 공간. 메모리를 효율적으로 사용할 수 없다.
8. 메모리 외부 단편화와 내부 단편화의 차이에 대해 설명하시오.
==> 단편화란 메모리에서 사용할 수 없는 공간이 나타나는 현상이다.
- 외부 단편화 : 메모리 공간이 충분한데도 작업의 크기가 할당될 메모리의 공간이 부족. 책꽂이에 두꺼운 책이 못들어가는 현상과 비슷.
- 내부 단편화 : 작업의 크기와 메모리의 크기가 딱 맞지 않아 어쩔 수없이 못 쓰는 공간이 생기는 현상
* 그래서 페이징과 가변 크기 할당을 통해 메모리를 프로세스의 크기마다 맞춰서 사용하여 외부, 내부 단편화를 방지할 수 있다.
9. 페이지와 프레임의 차이에 대해 설명하시오.
==> 메모리를 일정 크기로 나누어 관리할 때,
- 프레임 : 물리적 메모리를 일정 크기로 분할한 블록
- 페이지 : 가상 메모리를 일정 크기로 분할한 블록
* 페이지와 프레임은 상호 작용하며 프로세스에게 메모리 공간을 할당해준다.
10. OOM Killer에 대해 설명하시오.
==> OS 내부의 메모리가 부족할 때, OOM Score를 기준으로 특정 프로세스를 종료하여 메모리를 확보하는 기능.
OOM Score로는 프로세스의 우선순위, 메모리 점유율, 부모 프로세스냐 자식 프로세스냐 등을 따진다.
11. x86, x64, AMD, ARM에 대하여 설명하시오.
==> CPU 아키텍쳐의 종류가 무엇이냐로 나누며
- x86 : Intel의 아키텍쳐. 32비트(처리 능력)
- x64 : Intel의 아키텍쳐. 64비트. AMD64라고도 부른다.
- ARM : ARM의 아키텍쳐. 32비트(ARM7-A, R), 64비트(ARM8-A, ARM8-R)
'면접을 위한 CS 지식' 카테고리의 다른 글
클라우드 엔지니어 면접을 위한 CS 지식 정리 6 - 보안 (0) | 2023.09.03 |
---|---|
클라우드 엔지니어 면접을 위한 CS 지식 정리 5 - 네트워크 (0) | 2023.08.29 |
클라우드 엔지니어 면접을 위한 CS 지식 정리 4 - 리눅스 (0) | 2023.08.22 |
클라우드 엔지니어 면접을 위한 CS 지식 정리 3 - 스토리지 (0) | 2023.08.15 |
클라우드 엔지니어 면접을 위한 CS 지식 정리 2 - 가상화와 OS (0) | 2023.08.11 |