운영 체제 -- - 프로세스 관리(C 언어)
4231 단어 운영 체제
struct PCB_type {int pid;//프로세스 이름 ----------------------- 타임 슬라이스, 현재 대기열 포인터 int priority;//프로세스 우선순위 int cputime;//프로세스가 차지하는 CPU 시간 int state;/프로세스 상태};struct PCB_type neicun[20],waicun[20]; int shumu=0,pid_l;
int create(); void run( ); void huanchu(); void kill( ); void clrscr();
*********************************************************************************************************************************************************************************************************(1. 새 프로세스를 만듭니다. 2. 실행 프로세스를 보십시오.), printf("3. 어떤 프로세스를 바꿉니다. 4. 실행 프로세스를 죽이십시오."), printf("5. 시스템 종료"), printf("*********************************************************************************************************************************************************************************************************/break;case'5':exit(0);default:n=0;}}void clrscr() { system(“cls”); }
int create ()/* 프로세스를 만드는 예시 (완전하지 않은 프로그램) */{if (shumu > = 20) {printf ("메모리가 가득 차면 프로세스를 끝내거나 바꾸십시오");else {printf("새 프로세스의 pid를 입력하십시오.);scanf("%d", &neicun[shumu+1].pid);printf("새 프로세스의 우선 순위를 입력하십시오");scanf("%d", &neicun[shumu+1].priority);printf("새 프로세스의 크기를 입력하십시오");scanf("%d", &neicun[shumu+1].cputime);neicun[shuTate++1];;return neicun[shumu].state; }
void run ()/실행 프로세스 보기/{int rpid; printf (프로세스의 pid를 입력하십시오), scanf ('%d', & rpid), if (rpid > 0 & rpid <=20 & neicun[rpid].state1), printf (프로세스의 pid는:% d ', & & & & & & & &'%d ', &neicun[printe1)))), {printf (프로세스의 pid는' (프로세스의 pid는 '' '' 를 입력하십시오 ', scantf (', scantf)), scantf (프로세스의 pid는'프로세스의 pid는 ','프로세스의 pid는', ',','프로세스의 pid는'프로세스의 크기는'pr;else {printf ("보고 있는 실행 프로세스가 존재하지 않습니다.")printf ("리턴 버스를 누르면 보기 종료");rpid=getch();//실행 결과가 빨리 사라지는 것을 피할 수 있습니다. void huanchu ()/어떤 프로세스/{int pid1, pid2, charc, printf (교체할 프로세스의 pid를 입력하십시오), scanf ('% d', &pid1 ', pid1), printf (' 교체할 프로세스의 pid를 입력하십시오 '), scanf ('% d ', &pid2'), scanf ('% d 1 ('% d ', &pid1', &pid1), printf ('% & neicicicunpid1 [neicunpid1 & neicunpid1] [pid1] [ininine1: ine1 ine1 ine1 ine1 ine1: ine1 ine1 ine1 inicun[pid2].priority) {waicun[20].pid=neicun[pid1].pid;waicun[20].priority=neicun[pid1].priority; waicun[20].cputime=neicun[pid1].cputime;
neicun[pid1].pid=neicun[pid2].pid;
neicun[pid1].priority=neicun[pid2].priority;
neicun[pid1].cputime=neicun[pid2].cputime;
neicun[pid2].pid=waicun[20].pid;
neicun[pid2].priority=waicun[20].priority;
neicun[pid2].cputime=waicun[20].cputime;
printf("
");
printf("
pid : %d
",waicun[20].pid);
printf(" : %d
",waicun[20].priority);
printf(" :%d
",waicun[20].cputime);
}
else
{
printf("
");
}
}
else
{
printf("
");
}
printf("
");
c=getch();
return;
} void kill ()/실행 프로세스 죽이기/
int kpid;
printf("
pid
");
scanf("%d",&kpid);
if(kpid>0&&kpid<20&&neicun[kpid].state==1)
{
neicun[kpid].state=0;
}
return;
/*void tongxun()//프로세스 간 통신은 {inttpid1, tpid2, int buffer, chard, printf('통신원 프로세스pid를 입력하세요'), scanf('%d', &tpid1), printf('통신목적 프로세스pid를 입력하세요'), scanf('%d', &tpid2), if(tpid1>0 &tpid1 <20&neicun, &neicun[tpid1] [tpid1], [tpid1] [tpid1] [tpid1 [tpid1]: tpid1 [tpid1 [tpid1], live=intpid=intpid=int = int = intbuffer = = =////* * * * * * * * * id buffer msg=neicun[tpid2].msg;neicun[tpid2].msg=buffer;
printf("
: %d
",neicun[tpid1].msg);
printf("
: %d
",neicun[tpid2].msg);
}
else
{
printf("
");
}
printf("
");
d=getch();
return;
} */
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
독서 노트문제1: 한 파일에 10000000개의 기록이 포함되어 있으며, 각 기록의 내용은 7자리의 정수이다.기록은 중복되지 않는다.파일 내용을 읽는 프로그램이 필요하고, 이 기록을 정렬한 후 파일을 출력해야 하며, 메모리는...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.