반응형
SMALL
힙(Heap)
힙은 프로그래밍에서 중요한 메모리 관리 영역으로, 주로 동적 메모리 할당에 사용됩니다.
- 동적 메모리 할당: 프로그램이 실행되는 동안 필요에 따라 메모리를 할당하고 해제할 수 있는 영역입니다. 예를 들어, C언어에서 **malloc**과 free, 자바에서는 **new**와 가비지 컬렉터를 통한 자동 해제가 이에 해당합니다.
- Java의 가비지 컬렉션(GC): 자바에서는 개발자가 직접 메모리를 관리하지 않아도 됩니다. 대신, JVM(Java Virtual Machine)의 가비지 컬렉터가 더 이상 사용되지 않는 객체를 자동으로 감지하여 메모리에서 제거합니다. 이는 메모리 누수를 방지하고 프로그램의 안정성을 높이는 데 도움이 됩니다.
컨텍스트 스위칭(Context Switching)
컨텍스트 스위칭은 멀티태스킹 환경에서 중요한 개념으로, CPU가 여러 프로세스를 빠르게 전환하면서 실행하는 방식입니다.
- 프로세스의 상태 저장: 실행 중인 프로세스가 중단될 때, 그 상태는 PCB(Process Control Block)에 저장됩니다. PCB는 프로세스 ID, 프로그램 카운터(PC), 레지스터 값, 메모리 정보 등을 포함합니다.
- PCB의 역할: PCB는 프로세스가 중단된 지점부터 다시 시작할 수 있도록 하는 데 필요한 모든 정보를 저장합니다. 이 정보를 바탕으로 CPU는 실행 중이던 프로세스로 돌아갈 수 있습니다.
프로세스 간 커뮤니케이션(IPC)
프로세스 간 통신은 서로 다른 프로세스가 정보를 교환하거나 조정하기 위해 필요합니다.
- IPC의 필요성: 각 프로세스는 독립된 메모리 공간을 가지고 있기 때문에, 한 프로세스에서 다른 프로세스의 메모리에 직접 접근하는 것은 허용되지 않습니다. 이를 위해 특별한 통신 메커니즘이 필요합니다.
- IPC 방법:
- 파일 사용: 데이터를 파일에 쓰고 다른 프로세스가 이 파일을 읽음으로써 통신합니다.
- 메시지 큐: 프로세스 간 메시지를 전송하여 통신합니다. 이는 비동기적으로 데이터를 교환할 수 있는 방법입니다.
- 공유 메모리: 두 개 이상의 프로세스가 메모리의 동일한 부분을 공유하여 데이터를 교환합니다.
- 파이프: 일반적으로 한 프로세스의 출력을 다른 프로세스의 입력으로 연결하는 데 사용됩니다.
- 시그널: 프로세스 간 또는 운영체제로부터 프로세스로 신호를 보내는 방법입니다.
- 세마포어: 공유 자원에 대한 접근을 조정하기 위해 사용됩니다.
- 소켓: 네트워크를 통해 다른 시스템의 프로세스와 통신할 수 있게 합니다.
반응형
LIST
'Backend > CS' 카테고리의 다른 글
2. 운영체제 (프로세스와 스케쥴링) (0) | 2023.12.13 |
---|---|
2. 운영체제(프로세스 개념 및 스케줄링) (0) | 2023.12.11 |
2. 운영체제 (커널 모드와 사용자 모드 이해) (2) | 2023.12.07 |
2. 운영체제(운영체제 개념 및 커널과 쉘 이해) (1) | 2023.12.06 |
1. 컴퓨터 구조 (Program Counter) (0) | 2023.12.04 |