본문 바로가기
728x90

프로그래밍43

[운영체제] 프로세스 (Process) Process란 무엇인가프로세스란 실행 중인 한 프로그램을 의미하며, 쓰레드(Thread) 다음으로 큰 실행 단위입니다.단위의 크기를 따진다면, 프로그램 > 프로세스 > 쓰레드 라고 볼 수 있습니다.job이나 task라는 이름으로도 불립니다.각 프로세스는 독립적이며 한 프로세스에서 다른 프로세스에 접근하는 것은 금지되어 있습니다. Process의 메모리 구조한 프로세스는 다음과 같은 영역들로 구성되어 있습니다.Text (Code) :  기계어 집합Data : 전역 변수 영역Heap : 동적 할당 변수 영역Stack : 지역 변수 영역 PCB (Process Control Block)PCB란 Kernel Process에 저장되는 프로세스의 정보를 뜻합니다.Kernel Process 또한 일반적인 프로세스와.. 2024. 7. 19.
[운영체제] OS란 무엇인가 OS란 무엇일까OS란 Hardware Interface이다.OS는 사용자와 프로그램이 컴퓨터 자원을 사용할 수 있도록 중개하는 시스템 소프트웨어입니다.사용자에게는 User Interface를 제공하며, Kernel이라는 프로그램을 통해 프로그램의 하드웨어 사용을 관리합니다.  (1) User InterfaceOS는 사람이 컴퓨터를 조작할 수 있도록 User Interface; UI를 제공합니다.GUI ( Graphical User Interface ) : 그래픽을 이용하여 직관적으로 컴퓨터를 조작하는 인터페이스이다. Windows, MacOS 등 대중적인 운영체제에서 주로 사용합니다.CLI ( Command Line Interface) :  명령어를 통해 컴퓨터를 조작하는 인터페이스이다. 전문적인 조작이.. 2024. 7. 14.
T 트리 (T tree) T 트리란 무엇일까?T 트리는 한 노드가 여러개의 데이터를 가질 수 있고 회전을 통해 균형을 유지하는 균형 이진 탐색 트리이다.한 노드가 여러개의 데이터를 가짐으로써 AVL 트리의 문제점인 잦은 회전 연산이 개선되었다. 왜 T 트리를 배울까?T 트리는 적절한 N을 설정함으로써 Disk I/O를 최소화 할 수 있고 이진 검색을 통해 빠르게 데이터에 접근할 수 있다.그리고 구현이 비교적 간단하다.따라서 Main-Memory에서 모든 데이터를 상주시켜 사용하는 Main-Memory Database에서 자주 사용되었다.T 트리의 조건0. AVL 트리의 조건을 상속 받는다.1. 한 노드는 N개의 데이터를 가질 수 있다.T 트리에서 사용되는 용어용어설명반엽 노드 (half-leaf node)자식이 하나인 노드Ove.. 2024. 7. 12.
2-3 트리 (2-3 Tree) 2-3 트리란 무엇일까?2-3 트리는 이진 탐색 트리의 불균형 문제를 해결하고자 고안된 트리다.한 노드가 3개의 자식 노드를 가질 수 있기 때문에 이진 탐색 트리는 아니다.분할(Split)과 병합(Merge)을 통해 불균형 문제를 해결한다.항상 양쪽 서브트리 간 높이 차가 0인, 완전 균형 탐색 트리다. 왜 2-3 트리를 배울까?2-3 트리 또한 AVL 트리와 마찬가지로 그 자체로는 현재 잘 쓰이지 않는다.하지만, 2-3 트리의 균형을 유지하는 방식은 현재 데이터베이스 관리를 위해 주로 사용하는 B 트리에서도 사용된다. 결론적으로, 분할과 병합을 통한 트리 균형 유지 방법을 학습하기 위해 2-3 트리를 배운다. 2-3 트리의 조건0. 트리의 조건을 상속받는다.1. 왼쪽 서브트리의 모든 노드는 현재 노드의.. 2024. 7. 9.
AVL 트리 (AVL Tree) AVL 트리란 무엇일까?AVL 트리는 이진 탐색 트리의 불균형 문제를 해결하고자 고안된 트리다.최초로 고안된 균형 이진 탐색 트리이며, 회전을 통해 불균형 문제를 해결한다.완벽히 균형 잡힌 트리는 아니며, 최대 1의 높이 차가 발생할 수 있다. 왜 AVL 트리를 배울까?현재는 최적화된 다른 이진 탐색 트리가 많아 AVL 트리는 자체는 잘 사용되지 않는다.하지만, 현재 자바의 트리 자료구조인 Red-Black Tree 등 다양한 균형 이진 탐색 트리들이AVL 트리에서 최초로 고안된 회전이라는 개념을 사용하고 있다.  결론적으로, 회전이라는 개념을 이해하기 위해 AVL 트리를 배운다.  AVL 트리의 조건0. 이진 탐색 트리의 조건을 상속받는다.1. 어떤 노드도 Balance Factor의 절댓값이 1을 초.. 2024. 6. 21.
이진 탐색 트리 (Binary Search Tree) 이진 탐색 트리(binary search tree)란 무엇일까?이진 탐색 트리는 이진 검색을 사용할 수 있도록 노드가 연결된 트리 자료구조다. 왜 이진 탐색 트리를 사용할까?이진 탐색 트리는 이진 검색을 사용하여 빠르게 데이터를 찾을 수 있기 때문에 검색, 범위 검색을 위해 사용된다. 배열 또한 이진 검색을 사용할 수 있다. 그러나, 왜 굳이 이진 탐색 트리를 사용할까? 배열은 데이터 삽입, 삭제 시마다 오름차순이 깨질 수 있기 때문에 이진 검색을 사용하기 전 항상 정렬이 필요하다. 하지만 이진 탐색 트리는 항상 정렬 상태를 유지하고 있기 때문에 정렬 없이 이진 검색을 사용할 수 있다. 따라서 데이터의 삽입, 삭제가 많은 환경에서 이진 검색을 사용하기 위해 추가적인 정렬이 필요없는 이진 색 트리를 사용한.. 2024. 6. 19.
트리 (Tree) 트리(Tree)란 무엇일까?트리(Tree)는 데이터를 계층적으로 표현하는 자료구조다.  왜 트리를 사용할까?트리는 주로 검색 연산을 많이 해야 할 경우에 사용된다.트리가 검색에 특화된 이유는 계층 구조를 사용하기 때문이다.  트리의 조건1. 하나의 루트 노드를 가진다.2. 사이클이 존재하지 않는다.3. 모든 노드는 하나의 부모 노드를 가진다.4. 노드가 N개인 트리는 항상 N-1개의 간선을 가진다.트리에서 사용되는 용어앞으로의 편리한 설명을 위해 알아둘 용어이며, 시간을 들여 따로 외울 필요는 없다.용어설명노드 (Node)데이터를 저장하는 공간간선 (Edge)노드 간의 연결최상위 노드 (Root node)부모가 없는 트리의 최상위 노드내부 노드 (Interior node)최상위 노드도 말단 노드도 아닌 .. 2024. 6. 18.
728x90