분류 전체보기
Heap(힙)에 대하여
Heap(힙) 완전 이진 트리의 일종으로 우선순위 큐를 위하여 만들어진 자료구조입니다. 여러 개의 값중에 최댓값이나 최솟값을 빠르게 찾아내도록 만들어진 자료구조입니다. 힙은 반정렬 상태(느슨한 정렬 상태)를 유지합니다. [ 완전 이진 트리의 의미 ] 완전 이진 트리에서 완전이라는 말의 의미는 마지막 레벨을 제외한 모든 노드가 채워져 있으면서 모든 노드가 왼쪽부터 채워져 있어야 하는 것을 의미합니다. 위 그림에서 완전 이진트리는 마지막 레벨을 제외한 모든 노드가 채워져 있고 왼쪽부터 채워진 형태를 볼 수 있습니다. 만약 마지막 레벨의 노드가 모두 채워져 있으면 이를 포화 이진트리라고 부르게 됩니다. [ 힙의 반정렬(느슨한 정렬) 상태 ] 힙은 어떻게 최댓값 또는 최솟값을 빠르게 찾아낼 수 있을까요? 힙이 ..
캐시 메모리
Cache Memory(캐시 메모리) 캐시 메모리는 속도가 빠른 장치와 느린 장치 간의 속도차에 따른 병목 현상을 줄이기 위한 범용 메모리입니다. CPU가 처리하는 속도보다 RAM에서 데이터를 인출해오는 속도가 느리기 때문에 시간의 낭비가 발생하게 됩니다. 캐시 메모리는 사용한다면 둘 사이의 속도 차이로 인한 병목현상을 해결 할 수 있습니다. 캐시메모리는 CPU와 메모리 사이에 위치해 있으며 레지스터 보다는 용량이 크고 메모리보다는 빠른 저장 장치입니다. 캐시메모리는 CPU와 가까운 순서대로 계층을 구성합니다. CPU와 가장 가까운 캐시 메모리를 L1 캐시, 그 다음으로 가까운 캐시를 L2 캐시, 그 다음 가까운 캐시 메모리를 L3라고 부릅니다. 캐시 메모리의 용량은 L1, L2 ,L3 순으로 커지고 속..
PCB와 Context Switching이란?
PCB(Process Control Block)란? PCB는 프로세스 제어 블록을 지칭하는 말입니다. 모든 프로세스는 실행을 위해 CPU를 필요로 합니다. 하지만 CPU자원은 한정되어 있기 때문에 모든 프로세스를 동시에 실행할 수는 없습니다. 그렇기 때문에 돌아가면서 프로세스들을 실행해야 되는데, 이 때 각 프로세스들의 실행순서와 자원 배분을 위해 운영체제는 PCB를 사용하게 됩니다. 메모리는 커널 영역과 사용자 영역으로 나뉘어 지는데, PCB는 커널 영역에 생성됩니다. PCB는 프로세스 생성 시에 만들어지고 실행이 끝나면 폐기됩니다. PCB에는 아래와 같은 정보가 담기게 됩니다. 프로세스 ID (PID) 레지스터 값 프로세스 상태 CPU 스케줄링 정보 메모리 관리 정보 사용한 파일과 입출력 장치 PCB..
프로세스와 스레드에 대하여
운영체제란? 사용자가 컴퓨터를 편리하고 효과적으로 사용할 수 있도록 환경을 제공하는 시스템 소프트웨어입니다. 이러한 운영체제는 CPU, 입출력 장치, 프로세스 등 컴퓨터 시스템 자원을 관리하여 컴퓨터 시스템이 제대로 작동하도록 해줍니다. 프로세스란? 컴퓨터에서 실행되는 프로그램을 프로세스라고 합니다. 프로그램은 명령어 리스트를 가진 파일이고, 이것이 보조기억장치에서 주 기억장치인 RAM에 실릴 때 프로세스로 작동되게 됩니다. 프로세스는 보통 하나 이상의 스레드로 구성되어 있습니다. 프로세스는 각각 독립된 메모리 영역을 할당받습니다. 메모리 영역은 크게 4가지로 구분될 수 있는데 종류는 다음과 같습니다. 1. 코드 영역 2. 데이터 영역 3. 힙 영역 4. 스택 영역 각각의 프로세스는 독립된 메모리 영역들..