본문 바로가기
필수 개발지식/CS

[CS 지식] CPU와 메모리, 스케쥴링, 메모리, 자료구조

by 코딩하는짱구 2023. 6. 15.
반응형

개발자라면 기본으로 알아야할 CS 지식을 숙지해야한다. 아래 나오는 정보는 전부 알고있기!

 

[CS 지식] CPU와 메모리, 스케쥴링, 메모리, 자료구조

1. CPU란?

2. 스케쥴링이란?

3. 메모리란?

4.자료구조란? 

위의 목차를 클릭하면 해당 글로 자동 이동 합니다.

 

1. CPU란?

Central Processing Unit으로 중앙 처리 장치를 가리킵니다. 컴퓨터 시스템에서 모든 연산과 데이터 처리를 담당하는 핵심적인 하드웨어 구성 요소 입니다. -> 인간의 뇌 와 같다고 생각하면 쉬움

 

2. 스케쥴링이란?

운영 체제(OS) 에서 사용되는 개념. CPU 자원을 공유하며 여러 프로세스나 작업들이 실행되는 순서와 방법을 관리하는 프로세스를 말합니다. 스케쥴링을 하는 이유는 CPU 활용률을 최대화 시키고, 효율적으로 작업하기 위함이다. 스케줄링은 다양한 알고리즘과 방법을 사용하여 수행되는데 몇 가지 일반적인 스케쥴링 알고리즘은 다음과 같다. 

2-1. 선점스케쥴링, 비선점 스케쥴링

선점스케쥴링: 프로세스가 CPU를 점유중일 때 더 높은 우선순위의 프로세스가 들어오면 CPU를 빼앗을 수 있다

비선점스케쥴링: 프로세스가 CPU를 점유중일 때 다른 프로세스는 대기해야함

 

2-2. 우선 순위 스케쥴링

각 프로세스에 우선 순위를 부여하고, 높은 우선 순위를 가진 프로세스를 먼저 실행

 

 

3. 메모리란?

메모리는 컴퓨터 하드웨어로서, 데이터나 명령어를 저장하는 역할을 합니다. 

3-1. 주기억장치와 보조기억장치 

주기억장치(RAM, Random Access Memory): 컴퓨터에서 현재 실행중인 프로그램, 데이터, 작업등을 임시로 저장하는 곳입니다. 컴퓨터의 전원이 꺼지거나 재부팅 될 때 데이터가 삭제되는 휘발성 메모리, RAM은 데이터에 빠르게 액세스 할 수 있습니다.

보조기억장치(Secondary Storage): 보조 기억장치는 비휘발성 메모리, 데이터를 장기적으로 보존하는 역할을 합니다.
ex) 하드디스크, 하드디스크를 분리시킨 것이 
C드라이브, D드라이브와 같은 것.  SSD.  

3-1. 캐시와 메모리의 관계

아래 그림처럼 데이터 처리 속도를 높이기 위해 자주 사용되는 데이터를 담아두고, 해당 데이터가 필요할 때 캐시에 접근합니다. 

CPU는 캐시 > 메모리 > 디스크 순으로 데이터를 로드한다. 즉 캐시에 댁세스 하는 속도가 가장 빠름.

 

 

3-2. 캐시의 종류: L1, L2, L3

CPU 칩에는 여러개의 캐시가 들어가며 각각의 캐시는 각자의 목적과 역할을 가지고 있습니다.
L1 캐시에서 데이터를 못 찾으면 CPU는 L2 캐시를 확인하고, 그 다음은 L3를 확인합니다. 

 

 

4. 자료구조란?

자료구조란 데이터를 효율적으로 저장하고 활용하기 위한 구조를 나타냅니다. 

4-1. 자료구조의 유형

  1. 배열 : 고정된 크기의 '연속된' 메모리 공간에 데이터를 저장, 인덱스를 사용하여 데이터에 접근
  2. 연결리스트 : 각 노드들이 연결된 구조로 연속된 메모리 공간이 아닌 각각의 데이터가 메모리 공간 상에 고유한 노드로 존재한다. 
  3. 스택 : 후입선출(LIFO) 원칙을 따르는 자료구조
  4. 큐 : 선입선출(FIFO) 원칙을 따르는 자료구조
  5. 트리 : 계층적 구조로 데이터를 조직화, 이진트리, 이진탐색트리 등등
  6. 그래프 : 정점과 간선의 집합으로 데이터와 데이터 간의 관계를 나타낸다. 

 

4-2. Stack과 Queue 의 차이

스택(Stack) : LIFO
함수 호출 및 재귀, 복구(뒤로가기 버튼), 스택 메모리는 지역 변수와 호출 스택을 위해 사용됌 

큐(Queue) : FIFO
대기열 관리(먼저 들어온 작업이 먼저 처리), 탐색 알고리즘, 자원 공유

 

 

 

 

 

 

 

반응형