1. 시스템콜에 대해 설명해주세요.
시스템 콜은 사용자가 커널 기능에 접근하기 위한 인터페이스입니다. 프로그램이 다른 프로그램을 사용하기 위한 인터페이스인 API와 유사합니다. 작동방식은 시스템 콜에는 번호가 할당되고 시스템 콜 인터페이스는 이 번호에 따라 색인되는 테이블을 유지합니다. 이 테이블은 응용 프로그램에서 시스템 콜을 호출하면 번호를 보고 해당 함수가 호출한 후 시스템 콜의 상태와 반환 값을 돌려줍니다.
(커널이란? 시스템의 모든 것을 완전히 통제하는 운영체제의 핵심이 되는 프로그램입니다)
🔥꼬리질문🔥
< 시스템 콜이 잘못 호출되면 어떤 문제가 발생할 수 있나요? >
시스템콜은 모든 컴퓨터 리소스에 접근할 수 있기 때문에 다양한 문제가 발생할 수 있습니다.
일반적인 문제로는 프로그램 충돌, 데이터 손상, 보안 취약 등이 있습니다.
시스템 콜을 잘못 호출하는 것을 방지하기 위해 할 수 있는 몇 가지 방법이 있습니다.
첫째, 시스템 콜을 호출하기 전에 문서를 주의 깊게 읽으십시오.
둘째, 시스템 콜에 올바른 인수를 전달했는지 확인하십시오.
셋째, 잘못된 메모리 위치에 액세스하지 마십시오.
넷째, 운영 체제의 보호 메커니즘을 우회하려고 하지 마십시오.
시스템 콜이 잘못 호출되었을 수 있다고 생각되면 시스템을 종료하고 다시 시작하십시오.
이렇게 하면 시스템이 손상된 데이터를 복구하고 보안 취약점을 수정하는 데 도움이 될 수 있습니다.
< 시스템 콜의 종류에는 어떤 것들이 있나요? >
프로세스 관리: 프로세스 생성, 프로세스 종료, 프로세스 전환, 프로세스 동기화와 같은 작업에 사용되는 시스템 콜입니다.
메모리 관리: 메모리 할당, 메모리 해제, 메모리 보호와 같은 작업에 사용되는 시스템 콜입니다.
파일 관리: 파일 생성, 파일 삭제, 파일 읽기, 파일 쓰기와 같은 작업에 사용되는 시스템 콜입니다.
장치 관리: 장치 열기, 장치 닫기, 장치 읽기, 장치 쓰기와 같은 작업에 사용되는 시스템 콜입니다.
네트워크 관리: 네트워크 소켓 생성, 네트워크 소켓 연결, 네트워크 소켓 통신과 같은 작업에 사용되는 시스템 콜입니다.
2. 자료구조에서의 Tree에 대해 설명해주세요.
Tree는 자료구조 중 하나로 계층적인 구조를 가지고 있습니다. Tree는 노드(node)와 노드를 연결하는 엣지(edge)로 구성됩니다. 각 노드는 하나 이상의 자식 노드를 가질 수 있으며, 최상위 노드인 루트(root) 노드는 부모 노드가 없습니다.
Tree의 각 층을 레벨(level)이라고 하며, 루트 노드의 레벨은 0입니다. Tree는 이진 트리(binary tree), 이진 검색 트리(binary search tree), AVL 트리(AVL tree), B-트리(B-tree) 등 다양한 종류가 있습니다.
🔥꼬리질문🔥
< 트리에서 레벨은 어떤 역할을 하는 건가요? >
트리의 레벨은 루트 노드부터 시작해 아래로 갈수록 증가합니다. 트리의 레벨은 트리의 구조를 이해하고 분석하는데 중요한 역할을 합니다. 예를 들어, 완전 이진 트리(complete binary tree)는 높이가 k일 때, 레벨 1부터 k-1까지는 노드가 채워져 있고, 마지막 레벨 k에서는 왼쪽부터 오른쪽으로 노드가 차례대로 채워져 있어야 합니다2. 이처럼 트리의 구조와 종류를 파악하는데 레벨이 중요한 역할을 합니다.
< tree 자료구조에서 깊이(depth) 와 높이(height)는 어떻게 정의되나요? >
트리 데이터 구조에서 깊이(depth)는 루트 노드에서 특정 노드까지의 간선 수입니다. 루트 노드는 깊이가 0이고, 자식 노드는 깊이가 1입니다. 자식 노드의 깊이는 자식 노드의 자식 노드에 따라 결정됩니다. 트리 데이터 구조의 높이는 트리에서 가장 깊은 노드의 깊이입니다. 트리에 리프 노드(자식이 없는 노드)가 여러 개 있는 경우 트리의 높이는 가장 깊은 리프 노드의 깊이입니다. 트리의 깊이와 높이는 트리의 크기를 측정하는 데 사용할 수 있습니다. 트리의 크기는 트리의 노드 수로 정의할 수 있습니다. 트리의 높이는 트리의 노드 사이의 최대 거리로 정의할 수 있습니다.
'코딩공부 > 개발지식' 카테고리의 다른 글
[23회 - 데일리과제] Closure (0) | 2023.05.17 |
---|---|
[22회 - 데일리과제] CORS / Priority Queue (0) | 2023.05.15 |
[20회 - 데일리과제] JWT / 완전탐색 (0) | 2023.05.11 |
[2회] Nest.js (0) | 2023.05.11 |
[1회] Node.js (0) | 2023.05.11 |