운영 체제-프로세스
방법
프로세스는 기본적으로 실행중인 프로그램입니다. 프로세스 실행은 순차적으로 진행되어야합니다.
프로세스는 시스템에서 구현할 기본 작업 단위를 나타내는 엔티티로 정의됩니다.
간단히 말해서 컴퓨터 프로그램을 텍스트 파일로 작성하고이 프로그램을 실행하면 프로그램에서 언급 한 모든 작업을 수행하는 프로세스가됩니다.
프로그램이 메모리에로드되고 프로세스가되면 스택, 힙, 텍스트 및 데이터의 4 개 섹션으로 나눌 수 있습니다. 다음 이미지는 메인 메모리 내부 프로세스의 단순화 된 레이아웃을 보여줍니다.
SN | 구성 요소 및 설명 |
---|---|
1 | Stack 프로세스 스택에는 메서드 / 함수 매개 변수, 반환 주소 및 로컬 변수와 같은 임시 데이터가 포함됩니다. |
2 | Heap 이것은 런타임 동안 프로세스에 동적으로 할당 된 메모리입니다. |
삼 | Text 여기에는 Program Counter 값으로 표시되는 현재 활동과 프로세서 레지스터의 내용이 포함됩니다. |
4 | Data 이 섹션에는 전역 및 정적 변수가 포함되어 있습니다. |
프로그램
프로그램은 한 줄 또는 수백만 줄이 될 수있는 코드 조각입니다. 컴퓨터 프로그램은 일반적으로 컴퓨터 프로그래머가 프로그래밍 언어로 작성합니다. 예를 들어, 다음은 C 프로그래밍 언어로 작성된 간단한 프로그램입니다.
#include <stdio.h>
int main() {
printf("Hello, World! \n");
return 0;
}
컴퓨터 프로그램은 컴퓨터에서 실행할 때 특정 작업을 수행하는 명령 모음입니다. 프로그램을 프로세스와 비교할 때 프로세스가 컴퓨터 프로그램의 동적 인스턴스라는 결론을 내릴 수 있습니다.
잘 정의 된 작업을 수행하는 컴퓨터 프로그램의 일부를 algorithm. 컴퓨터 프로그램, 라이브러리 및 관련 데이터의 모음을software.
프로세스 라이프 사이클
프로세스가 실행되면 다른 상태를 통과합니다. 이러한 단계는 운영 체제마다 다를 수 있으며 이러한 상태의 이름도 표준화되지 않았습니다.
일반적으로 프로세스는 한 번에 다음 5 개 상태 중 하나를 가질 수 있습니다.
SN | 상태 및 설명 |
---|---|
1 | Start 프로세스가 처음 시작 / 생성 될 때의 초기 상태입니다. |
2 | Ready 프로세스가 프로세서에 할당되기를 기다리고 있습니다. 준비된 프로세스는 실행될 수 있도록 운영 체제에서 프로세서를 할당하기를 기다리고 있습니다. 프로세스가이 상태가 될 수 있습니다.Start 다른 프로세스에 CPU를 할당하기 위해 스케줄러에 의해 중단되었지만 실행 중입니다. |
삼 | Running OS 스케줄러에 의해 프로세스가 프로세서에 할당되면 프로세스 상태가 실행 중으로 설정되고 프로세서가 명령을 실행합니다. |
4 | Waiting 사용자 입력을 기다리거나 파일을 사용할 수있을 때까지 기다리는 것과 같이 리소스를 기다려야하는 경우 프로세스가 대기 상태로 전환됩니다. |
5 | Terminated or Exit 프로세스가 실행을 완료하거나 운영 체제에 의해 종료되면 종료 상태로 이동하여 주 메모리에서 제거되기를 기다립니다. |
공정 제어 블록 (PCB)
프로세스 제어 블록은 모든 프로세스에 대해 운영 체제에서 유지 관리하는 데이터 구조입니다. PCB는 정수 프로세스 ID (PID)로 식별됩니다. PCB는 아래 표에 나열된 프로세스를 추적하는 데 필요한 모든 정보를 유지합니다.
SN | 정보 및 설명 |
---|---|
1 | Process State 프로세스의 현재 상태, 즉 준비, 실행 중, 대기 중인지 여부. |
2 | Process privileges 시스템 리소스에 대한 액세스를 허용 / 금지하는 데 필요합니다. |
삼 | Process ID 운영 체제의 각 프로세스에 대한 고유 식별. |
4 | Pointer 부모 프로세스에 대한 포인터. |
5 | Program Counter 프로그램 카운터는이 프로세스를 위해 실행될 다음 명령어의 주소에 대한 포인터입니다. |
6 | CPU registers 실행 상태에 대한 실행을 위해 프로세스를 저장해야하는 다양한 CPU 레지스터. |
7 | CPU Scheduling Information 프로세스를 예약하는 데 필요한 프로세스 우선 순위 및 기타 예약 정보. |
8 | Memory management information 여기에는 운영 체제에서 사용하는 메모리에 따른 페이지 테이블, 메모리 제한, 세그먼트 테이블 정보가 포함됩니다. |
9 | Accounting information 여기에는 프로세스 실행에 사용 된 CPU 양, 시간 제한, 실행 ID 등이 포함됩니다. |
10 | IO status information 여기에는 프로세스에 할당 된 I / O 장치 목록이 포함됩니다. |
PCB의 아키텍처는 운영 체제에 완전히 의존하며 운영 체제마다 다른 정보를 포함 할 수 있습니다. 다음은 PCB의 단순화 된 다이어그램입니다.
PCB는 전체 수명 동안 프로세스에 대해 유지되며 프로세스가 종료되면 삭제됩니다.