메모리 단편화 (Memory Fragmentation)
2024. 2. 18. 18:34
컴퓨터 과학/개념정리
메모리를 공부하면서 메모리 단편화에 대해서 알게 되었다. 그래서 추가적으로 메모리 단편화가 무엇인지 정리해보려고 한다. 메모리 단편화가 무엇인가 RAM 에서 메모리의 공간이 작은 조각으로 나누어져 사용가능한 메모리가 충분히 존재하지만 할당이 불가능한 상태를 메모리 단편화라고 한다. 메모리 단편화는 2가지로 구분할 수 있다. 내부 단편화 (Internal Fragmentation) 외부 단편화 (External Fragmentation) 내부 단편화 (Internal Fragmentation) 내부 단편화란 메모리를 할당할 때 OS 에서 할당한 메모리 공간보다 프로세스가 더 적은 공간을 사용해서 낭비되는 상태를 말한다. 예를 들어, 10MB 의 메모리 크기가 주어졌는데 실제 프로세스는 5MB 만 사용하는 ..
메모리 구조 (Memory Structure)
2024. 2. 18. 17:27
컴퓨터 과학/개념정리
디스크에 저장되어있는 프로그램을 실행하게 되면 프로그램에 대하 정보를 읽어와 메모리에 로드하게 된다. 그럼 메모리에 어떻게 적재되고 어디에 적재되는가에 대해서 정리해보자. 먼저 메모리는 다음과 같이 4개의 영역으로 구분된다. 그럼 각 영역이 어떤 역할을 하는지 알아보자. 코드(Code) 영역 코드 영역에는 우리가 작성한 코드가 저장된다. 이때 컴파일이 완료된 상태의 코드(0과 1로 이루어진 기계어)가 할당된다. 예를 들어, 코드 내에 있는 함수나 조건문, 상수 와 같은 코드들이 컴파일되어 메모리에 할당된다. 따라서 CPU 가 작업을 수행할 때 코드 영역에 있는 명령어들을 가져가 실행하게 된다. 데이터(Data) 영역 데이터 영역에는 전역 변수(global) 와 정적 변수(static) 가 할당된다. ma..
프로그램과 프로세스의 차이
2024. 2. 11. 17:04
컴퓨터 과학/개념정리
CS 를 다시 공부하면서 프로그램과 프로세스에 대해서 정확히 설명하지 못했고 (반성하자) 프로그램과 프로세스의 차이에 대해서 제대로 알고 있지 않다는 생각이 들어 제대로 이해하고자 공부한 내용을 정리해보려고 한다. 프로그램 (Program) 프로그램이란 흔히 소프트웨어라고 하는 애플리케이션들을 말한다 예를 들어, 카카오톡이나 계산기 등을 프로그램이라고 할 수 있다. 조금 더 자세하게 설명하자면 컴퓨터가 실행할 수 있는 명령의 집합이자 Disk 에 저장되는 정적인 엔티티라고 할 수 있다. 변함없이 디스크에 저장되어있기 때문에 정적이라고 표현한다. 프로세스 (Process) 프로세스란 프로그램의 실행을 의미한다. 따라서, 동적인 엔티티라고 할 수 있다. 프로세스는 프로그램이 실행될 때 운영 체제에 의해 생성..
오프셋, offset
2023. 2. 28. 10:53
컴퓨터 과학/개념정리
offset, 오프셋 offset 의 사전적 의미는 상쇄하다, 벌충하다, 차감을 계산하다, 편차 등의 의미로 해석된다. 컴퓨터 과학에서 배열이나 자료 구조 오브젝트 내의 offset 은 일반적으로 동일 오브젝트 안에 처음부터 주어진 요소나 지점까지의 변위차를 나타내는 정수형이다. 예를 들어, “abcdef” 라는 문자열이 있다면 ‘c’ 문자는 ‘a’ 부터 2의 오프셋 을 지닌다고 할 수 있다. 어셈블리어와 같은 저급 프로그래밍 언어에서 오프셋 은 상태 주소(relative address) 로 부른다. 참고 사이트 오프셋 (컴퓨터 과학) - 위키백과, 우리 모두의 백과사전