본문 바로가기

cs/운영체제3

[운영체제] 운영체제의 메모리를 관리 전략 운영체제가 메모리 관리를 해야 하는 이유:프로세스 간의 메모리 충돌 방지: 각 프로세스는 독립적인 메모리 공간을 가져야 합니다. 메모리 충돌을 방지하지 않으면 하나의 프로세스가 다른 프로세스의 메모리를 덮어쓰는 문제가 발생할 수 있습니다. 예를 들어 A,B 프로세스가 동시에 실행되고 있는 상태에서 A 프로세스가 B 프로세스의 메모리를 침범한다면 끔찍한 일이 발생할 것이다. 효율적인 자원 활용: 메모리는 제한된 자원이기 때문에, 여러 응용 프로그램이 동시에 실행될 때 메모리 자원을 효율적으로 관리하는 것이 중요합니다.메모리 보호: 악성 코드나 잘못된 프로그램이 중요한 시스템 메모리를 침범하는 것을 방지해야 합니다. 프로세스 간의 메모리 공유: 일부 프로세스들은 메모리를 공유할 수 있어야 하는데, 이를 적절.. 2024. 9. 10.
값 형식 / 참조 형식 이란 ? 값 형식과 참조 형식  값 형식(Value Types) : 변수가 값을 담는 데이터 형식, 스택 메모리 영역에 저장된다. 스택은 빠른 메모리 영역으로, 값 형식의 데이터는 메모리에 연속적으로 저장되어 빠른 접근이 가능하다. 종류: C#과 같은 언어에서 기본 데이터 타입(int, double, float, char 등), 구조체(struct), 열거형(enum) 등이 값 형식이다.메모리 관리: 값 형식은 스택에 저장되므로 스코프가 종료될 때 자동으로 메모리가 해제된다.복사 시 동작: 값 형식을 다른 변수에 할당하면 원본 데이터의 값이 복사된다. 즉, 두 변수는 독립적인 메모리 공간을 차지하게 되며, 하나의 변수를 수정해도 다른 변수에 영향을 주지 않는다.int a = 5;int b = a; // b는 a의.. 2024. 8. 27.
[운영체제] 프로세스의 메모리 영역 구조 프로세스의 메모리 영역 구조를 간단히 표현하면 다음과 같다. 각 메모리 구조는 다음과 같이 나뉜다. 스택(Stack): 지역 변수, 함수의 매겨변수(parameter), 반환되는 주소 값 등이 저장되는 영역이다.  높은 주소 값에서 낮은 주소 값으로 메모리가 할당되며, 영역의 크기는 컴파일 때 결정된다.  힙(heap) : 사용자에 의해 동적 메모리 할당이 일어나는 영역이다. C 언어에서 malloc() 으로 할당되는 영역이라고 보면 된다. 낮은 주소 값에서 높은 주소 값으로 메모리가 할당되며, 영역 크기는 런타임 때 결정된다.컴파일은 프로그래밍 언어로 작성된 소스 코드를 기계어 또는 중간 코드(바이트코드)로 변환하는 과정이다.런타임은 컴파일이 완료된 프로그램이 실행되는 시점을 말합니다. 즉, 컴파일된 .. 2024. 8. 26.