프로세스
운영체제에서 CPU의 활동을 어떻게 정의하면 좋을까? 컴퓨터 과학 초기 배치시스템에서는 작업(job)이라는 용어를 사용했고, 이후 타임 쉐어링 시스템(time-sharing systems)으로 발전하면서 프로세스(Process) 라는 용어로 사용된다.
정의
•
프로세스란 실행 중인 프로그램을 의미한다.
•
프로세스는 현재 실행 상태를 나타내는 데이터로 정의된다.
◦
프로그램 카운터(program counter): 다음 실행 명령어의 위치
◦
프로세서 레지스터(processor registers): 프로세스 실행에 필요한 데이터와 상태
프로세스 메모리 구조
프로세스 메모리 내에 다양한 섹션으로 구성된다. 아래 그림과 같이 각 섹션의 역할에 대해 알아보자.
섹션 | 내용 |
스택(Stack) | 함수 호출 시 및 지역 변수를 저장
(예: 함수 매개변수, 반환 주소, 지역 변수) |
힙(Heap) | 동적 메모리 할당에 사용 ← 이부분이 동적 라이브러리 연결이 맞나? |
데이터(Data) | 전역 변수(Global)와 정적 데이터? 정적 변수? 가 저장 |
텍스트(Text) | 실행 가능한 코드가 저장 |
섹션 크기의 변화
•
고정 크기 섹션
◦
데이터 섹션: 전역 변수, 고정된 크기
◦
텍스트 섹션: 프로그램 코드, 고정된 크기
•
동적으로 크기 변화
◦
스택
▪
함수 호출 시 데이터 추가(push)
▪
함수 호출 시 데이터 제거(pop)
◦
힙
▪
실행 중 메모리 동적 할당 시 확장
▪
메모리 반환 시 축소
스택과 힙은 메모리 내에서 서로 반대 방향으로 확장한다. 운영 체제는 이 두 섹션이 충돌하지 않도록 메모리 경계를 잘 관리해야한다. // 좀더 자세한 내용은 메모리 관리쪽에서
운영체제와 프로세스 관계
운영체제는 프로세스의 다음 기능을 관리해야한다.
•
프로세스 생성 및 종료: 새로운 프로세스 생성과 완료된 프로세스 종료
•
프로세스 스케줄링: CPU와 기타 자원을 여러 프로세스 분배
•
메모리 관리: 각 프로세스의 메모리 사용 추적 및 충돌 방지
•
프로세스 동기화 및 통신: 프로세스 간 데이터 교환과 실행 순서 관리
운영체제가 프로세스를 효율적으로 관리하기 위해 설계된 구조는 컴퓨터의 성능과 자원 활용에 중요한 영향을 미친다.
마무리
프로세스는 운영체제와 컴퓨터의 기본 단위로, CPU 활동과 메모리 관리를 정의하는 데 중요한 역할을 한다.
•
각 프로세스는 고유의 메모리 섹션과 실행 상태를 유지하며 운영체제의 관리하에 효율적으로 동작한다.
•
운영체제는 프로세스 관리와 자원 할당을 통해 멀티태스킹과 시스템 성능을 지원한다.
Related Posts
Search