Search

[2장 프로세스 관리(기초)]1.프로세스 및 프로세스 메모리 구조

Publish Date
Category
Status
Done
1 more property
프로세스 및 프로세스 메모리 구조
운영체제의 핵심 개념인 프로세스와 그 메모리 구조를 이해함으로써, 프로그램 실행 중의 동작 원리와 운영체제가 자원을 효율적으로 관리하는 방법을 학습한다.
Table of Content

프로세스

운영체제에서 CPU의 활동을 어떻게 정의하면 좋을까? 컴퓨터 과학 초기 배치시스템에서는 작업(job)이라는 용어를 사용했고, 이후 타임 쉐어링 시스템(time-sharing systems)으로 발전하면서 프로세스(Process) 라는 용어로 사용된다.

정의

프로세스란 실행 중인 프로그램을 의미한다.
프로세스는 현재 실행 상태를 나타내는 데이터로 정의된다.
프로그램 카운터(program counter): 다음 실행 명령어의 위치
프로세서 레지스터(processor registers): 프로세스 실행에 필요한 데이터와 상태

프로세스 메모리 구조

프로세스 메모리 내에 다양한 섹션으로 구성된다. 아래 그림과 같이 각 섹션의 역할에 대해 알아보자.
섹션
내용
스택(Stack)
함수 호출 시 및 지역 변수를 저장 (예: 함수 매개변수, 반환 주소, 지역 변수)
힙(Heap)
동적 메모리 할당에 사용 ← 이부분이 동적 라이브러리 연결이 맞나?
데이터(Data)
전역 변수(Global)와 정적 데이터? 정적 변수? 가 저장
텍스트(Text)
실행 가능한 코드가 저장

섹션 크기의 변화

고정 크기 섹션
데이터 섹션: 전역 변수, 고정된 크기
텍스트 섹션: 프로그램 코드, 고정된 크기
동적으로 크기 변화
스택
함수 호출 시 데이터 추가(push)
함수 호출 시 데이터 제거(pop)
실행 중 메모리 동적 할당 시 확장
메모리 반환 시 축소
스택과 힙은 메모리 내에서 서로 반대 방향으로 확장한다. 운영 체제는 이 두 섹션이 충돌하지 않도록 메모리 경계를 잘 관리해야한다. // 좀더 자세한 내용은 메모리 관리쪽에서

운영체제와 프로세스 관계

운영체제는 프로세스의 다음 기능을 관리해야한다.
프로세스 생성 및 종료: 새로운 프로세스 생성과 완료된 프로세스 종료
프로세스 스케줄링: CPU와 기타 자원을 여러 프로세스 분배
메모리 관리: 각 프로세스의 메모리 사용 추적 및 충돌 방지
프로세스 동기화 및 통신: 프로세스 간 데이터 교환과 실행 순서 관리
운영체제가 프로세스를 효율적으로 관리하기 위해 설계된 구조는 컴퓨터의 성능과 자원 활용에 중요한 영향을 미친다.

마무리

프로세스는 운영체제와 컴퓨터의 기본 단위로, CPU 활동과 메모리 관리를 정의하는 데 중요한 역할을 한다.
각 프로세스는 고유의 메모리 섹션과 실행 상태를 유지하며 운영체제의 관리하에 효율적으로 동작한다.
운영체제는 프로세스 관리와 자원 할당을 통해 멀티태스킹과 시스템 성능을 지원한다.
Search
Main PageCategoryTagskkogggokkAbout MeContact