운영 체제 -- - 프로세스 관리(C 언어)

4231 단어 운영 체제
1. 프로세스 관리 #include "conio.h"#include "stdio.h"#include "stdlib.h"
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;

} */

좋은 웹페이지 즐겨찾기