进程的创建于撤销

合集下载

操作系统实验报告进程管理

操作系统实验报告进程管理

操作系统实验报告进程管理操作系统实验报告:进程管理引言操作系统是计算机系统中的核心软件,负责管理计算机的硬件资源和提供用户与计算机之间的接口。

进程管理是操作系统的重要功能之一,它负责对计算机中运行的各个进程进行管理和调度,以保证系统的高效运行。

本实验报告将介绍进程管理的基本概念、原理和实验结果。

一、进程管理的基本概念1. 进程与线程进程是计算机中正在运行的程序的实例,它拥有独立的内存空间和执行环境。

线程是进程中的一个执行单元,多个线程可以共享同一个进程的资源。

进程和线程是操作系统中最基本的执行单位。

2. 进程状态进程在运行过程中会经历不同的状态,常见的进程状态包括就绪、运行和阻塞。

就绪状态表示进程已经准备好执行,但还没有得到处理器的分配;运行状态表示进程正在执行;阻塞状态表示进程由于某些原因无法继续执行,需要等待某些事件的发生。

3. 进程调度进程调度是操作系统中的一个重要任务,它决定了哪个进程应该获得处理器的使用权。

常见的调度算法包括先来先服务(FCFS)、最短作业优先(SJF)和时间片轮转等。

二、进程管理的原理1. 进程控制块(PCB)PCB是操作系统中用于管理进程的数据结构,它包含了进程的各种属性和状态信息,如进程标识符、程序计数器、寄存器值等。

通过PCB,操作系统可以对进程进行管理和控制。

2. 进程创建与撤销进程的创建是指操作系统根据用户的请求创建一个新的进程。

进程的撤销是指操作系统根据某种条件或用户的请求终止一个正在运行的进程。

进程的创建和撤销是操作系统中的基本操作之一。

3. 进程同步与通信多个进程之间可能需要进行同步和通信,以实现数据共享和协作。

常见的进程同步与通信机制包括互斥锁、信号量和管道等。

三、实验结果与分析在本次实验中,我们使用了一个简单的进程管理模拟程序,模拟了进程的创建、撤销和调度过程。

通过该程序,我们可以观察到不同调度算法对系统性能的影响。

实验结果显示,先来先服务(FCFS)调度算法在一些情况下可能导致长作业等待时间过长,影响系统的响应速度。

自考02323全国2002年1月到2012年10月高等教育自学考试(操作系统概论)试题与答案

自考02323全国2002年1月到2012年10月高等教育自学考试(操作系统概论)试题与答案

⾃考02323全国2002年1⽉到2012年10⽉⾼等教育⾃学考试(操作系统概论)试题与答案2001年4⽉份操作系统概论(2323)试题(计算机及应⽤专业)(专科)本试题分为两部分,第⼀部分为选择题,第1页⾄第3页,第⼆部分为⾮选择题,第3页⾄第页,共页;选择题分,⾮选择题分,满分分。

考试时间分钟。

第⼀部分选择题⼀、单项选择题(本⼤题共15⼩题,每⼩题1分,共15分)。

在每⼩题列出的四个选项中只有⼀个选项是符合题⽬要求的,请将正确选项前的字母填在题⼲中的括号内。

1.只能在核⼼态下执⾏的指令是(B)A、读时钟⽇期B、屏蔽所有中断C、改变⽂件内容D、调⽤库函数2.操作系统为⽤户程序完成与(B)的⼯作。

A、硬件⽆关和应⽤⽆关B、硬件相关和应⽤⽆关C、硬件⽆关和应⽤相关D、硬件相关和应⽤相关3.进程控制块中的现场信息是在(D)保存的。

A、创建进程时B、处理器执⾏指令时C、中断源申请中断时D、中断处理程序处理中断前4.当进程调度采⽤最⾼优先级调度算法时,从保证系统效率的⾓度来看,应提⾼(B)进程的优先级。

A、连续占⽤处理器时间长的B、在就绪队列中等待时间长的C、以计算为主的D、⽤户5.将主存空闲区按地址顺序从⼩到⼤登记在空闲区表中,每次分配时总是顺序查找空闲区表,此种分配算法称为(A)分配算法。

A、最先适应B、最优适应C、最坏适应D、随机适应6.页式存储管理中,每次从主存中取指令或取操作数,要(B)次访问主存。

A、1次B、2次C、3次D、4次7.⽂件系统中⽂件被按照名字存取是为了(B)A、⽅便操作系统对信息的管理B、⽅便⽤户的使⽤C、确定⽂件的存取权限D、加强对⽂件内容的保密8、系统在接到⽤户关于⽂件的(A)操作命令后,就在⽂件⽬录中寻找空⽬录项进⾏登记。

A、建⽴B、打开C、读D、写9.⽂件系统与(B)密切相关,它们共同为⽤户使⽤⽂件提供⽅便。

A、处理器管理B、存储管理C、设备管理D、作业管理10.对磁盘进⾏移臂调度时,既考虑了减少寻找时间,⼜不频繁改变移动臂的移动⽅向的调度算法是(C)A、先来先服务B、最短寻找时间优先C、电梯调度D、优先级⾼者优先11.(A)不是作业所经历的作业步。

与进程控制相关的原语

与进程控制相关的原语

与进程控制相关的原语一、进程控制原语的概念进程控制原语是指在操作系统中,用于管理和控制进程的一系列基本操作。

通过这些原语,我们可以对进程进行创建、撤销、暂停、恢复等操作,以实现进程的有效管理和控制。

二、进程创建原语1. 创建进程(Create):创建新的进程并为其分配资源,包括分配进程控制块(PCB)、分配内存空间、分配唯一的进程标识符(PID)等。

创建进程时,可以指定进程的优先级、初始状态以及父子关系等。

三、进程撤销原语1. 撤销进程(Terminate):终止一个进程的执行,并释放其占用的资源。

撤销进程时,操作系统会回收进程所使用的内存空间、文件描述符等资源,并从系统的进程表中删除该进程的 PCB。

四、进程暂停和恢复原语1. 暂停进程(Suspend):将一个正在执行的进程暂停,暂停后的进程不会继续执行,但其占用的资源仍然保留。

暂停进程的目的是为了让其他优先级更高的进程能够获得执行机会。

2. 恢复进程(Resume):将一个被暂停的进程恢复执行,使其继续执行之前的工作。

恢复进程时,操作系统会重新分配资源,并将进程的状态设置为就绪状态,以便其能够参与到进程调度中。

五、进程同步原语1. 互斥原语(Mutex):用于实现进程之间的互斥访问共享资源。

互斥原语提供了对共享资源的排他性访问,确保同一时间只有一个进程可以访问共享资源,从而避免了资源竞争的问题。

2. 信号量原语(Semaphore):用于实现进程之间的同步和互斥。

信号量原语提供了两种操作:P(proberen)操作和V(verhogen)操作。

P操作用于申请资源,V操作用于释放资源。

通过对信号量进行P和V操作,可以实现对共享资源的互斥访问和进程之间的同步。

六、进程通信原语1. 管道(Pipe):用于实现具有亲缘关系的进程之间的通信。

管道提供了一种半双工的通信方式,其中一个进程负责写入数据,另一个进程负责读取数据。

管道可以用于实现进程间的数据传输和共享。

操作系统的基本功能

操作系统的基本功能

操作系统的基本功能操作系统是计算机系统中的核心软件之一,承担着管理和控制计算机硬件以及支持用户软件运行的重要任务。

操作系统的基本功能涵盖了各种方面,下面将从进程管理、内存管理、文件系统管理以及设备管理四个方面来介绍操作系统的基本功能。

一、进程管理进程管理是操作系统中的核心功能之一,它负责对计算机系统中所有的进程进行管理和控制。

进程是指正在运行的一个程序的实例,每个进程都拥有自己的内存空间、CPU时间片以及相关资源。

操作系统通过进程管理来实现进程的创建、撤销、调度和通信等功能。

1. 进程创建:操作系统负责接收用户或其他进程的请求,创建新的进程,为其分配资源,并初始化进程控制块(PCB)等数据结构。

2. 进程撤销:操作系统可以根据用户或系统的请求,撤销已经运行完毕或出现错误的进程,回收相关资源,并释放进程所占用的内存空间。

3. 进程调度:操作系统通过进程调度算法来决定每个时刻应该运行哪些进程,以实现多道程序同时运行的效果。

4. 进程通信:操作系统提供进程间通信的机制,使得不同进程之间可以通过共享内存、管道、消息队列等方式进行信息的交换和共享。

二、内存管理内存管理是操作系统的另一个基本功能,主要负责管理计算机系统中的内存资源,包括内存的分配与回收、地址映射等。

1. 内存分配:操作系统负责为各个进程分配内存空间,以满足其运行所需。

常见的内存分配算法包括连续分配、离散分配、虚拟内存等。

2. 内存回收:当进程运行结束或者被撤销时,操作系统将回收其所占用的内存空间,以便于为其他进程提供空间。

3. 地址映射:操作系统通过地址映射机制,将逻辑地址(用户程序使用的地址)转换为物理地址(内存中的实际地址),以实现对内存的有效访问。

三、文件系统管理文件系统管理是操作系统的另一个重要功能,它负责对存储设备上的文件进行管理和控制,包括文件的创建、读写、删除以及文件的组织和保护等。

1. 文件创建与删除:操作系统提供文件管理接口,使用户或应用程序能够方便地创建新文件或删除已有文件。

操作系统原理参考答案

操作系统原理参考答案

操作系统原理参考答案参考答案第一章习题1.简述计算机系统的组成。

参考答案:计算机系统就是按人的要求接收和存储信息,自动进行数据处理和计算,并输出结果信息的系统。

一个完整的计算机系统是由硬件和软件两大部分组成的。

通常硬件是指计算机物理装置本身,是完成系统各项工作的物质基础,主要包括中央处理器(CPU)、存储器和各种输入输出设备(简称I/O设备);而软件是各种程序和文件,用于指挥和管理整个计算机系统按指定的要求进行工作。

2.什么是操作系统?它在计算机中的地位如何?其功能有哪些?参考答案:操作系统是一组控制和管理计算机硬件和软件资源,合理地对各类作业进行调度,以及方便用户使用的程序的集合。

操作系统是计算机系统中最靠近硬件的一层软件,它支持和管理硬件,与具体的应用领域无关,在计算机系统的所有软件中,操作系统是基础,其它软件只有在操作系统的支持下,才能发挥作用。

它是计算机硬件和其它软件以及计算机用户之间的联系纽带,如果没有操作系统,用户几乎无法使用计算机系统。

从资源管理的观点看,操作系统具有五个方面的功能:处理器管理、存储器管理、设备管理、文件管理和提供用户接口。

这五大部分相互配合,协调工作,实现计算机系统的资源管理、控制程序的执行、并为用户提供方便的使用接口。

3.操作系统有哪几种类型?各有什么特点?参考答案:操作系统是随着计算机硬件技术的不断发展和用户的使用要求的提高而从无到有不断完善起来的,其主要类型及其特点如下:(1)批处理操作系统:具有很高的资源利用率和系统吞吐量,但作业的平均周转时间较长,也没有交互性。

(2)分时操作系统:具有多路性、独立性、及时性和交互性特征,而交互性是其最重要的特征之一。

(3)实时操作系统:实时操作系统通常是专用的,具有高及时性和高可靠性,但交互性较弱。

(4)微机操作系统:是配置在微型计算机上的操作系统,可以是单任务或多任务,也可以是单用户或多用户系统。

(5)网络操作系统:是配置在网络中的操作系统,用于管理网络通信和共享资源,协调各计算机上任务的运行,并向用户提供统一的、有效方便的网络接口。

计算机操作系统中的进程管理和资源分配

计算机操作系统中的进程管理和资源分配

计算机操作系统中的进程管理和资源分配计算机操作系统是计算机系统的核心组件之一,负责管理和控制计算机的各种资源,以及协调和执行用户程序。

在操作系统中,进程管理和资源分配是非常重要的功能模块,它们决定了计算机系统的性能和资源利用率。

本文将深入探讨计算机操作系统中的进程管理和资源分配的原理和方法。

一、进程管理进程是计算机执行中的一个程序实例,是操作系统进行任务调度和资源分配的基本单位。

进程管理主要包括进程的创建、撤销、调度和通信等功能。

1. 进程的创建进程的创建是指通过操作系统的调度机制,实现新进程的产生。

创建进程的方式主要有两种:静态创建和动态创建。

静态创建是在系统启动时预先定义好进程模板,然后通过复制模板来创建新进程。

而动态创建是在系统运行时,根据用户的请求动态生成新进程。

2. 进程的撤销进程的撤销是指在进程执行完毕或出现错误时,将进程从系统中清除。

撤销进程时,操作系统需要回收进程所占用的资源,并释放相关的系统数据结构。

撤销进程的方式一般有两种:正常撤销和非正常撤销。

正常撤销是进程执行完毕后自然结束的一种方式,而非正常撤销则是由于进程运行错误或系统故障等原因导致进程提前终止。

3. 进程的调度进程调度是指操作系统根据一定的策略,选择合适的进程执行。

常见的进程调度算法有先来先服务调度(FCFS)、短作业优先调度(SJF)、时间片轮转调度(RR)等。

不同的调度算法会对进程执行顺序产生影响,从而影响系统的响应时间和吞吐量。

4. 进程的通信进程通信是指不同进程之间进行数据交换和信息传递的过程。

进程通信可以通过共享内存、消息传递、管道等方式实现。

通过进程通信,不同的进程可以相互协作,共同完成复杂的任务。

二、资源分配资源分配是计算机操作系统中一个重要的功能模块,它负责将计算机的各种资源按照一定的策略分配给各个进程,以满足进程的需求。

1. 资源管理操作系统需要管理各种资源,包括处理器、内存、硬盘、IO设备等。

资源管理的目标是保证资源的高效利用和公平分配。

106256-操作系统(第5版)-9-《操作系统教程》(5版)教学重点、难点及解决办法

106256-操作系统(第5版)-9-《操作系统教程》(5版)教学重点、难点及解决办法

《操作系统教程》(笫5版)教学重点、难点及解决办法(按十个核心知识单元排列)1、概念与原理重点:操作系统的发展历史、定义、作用、功能、特征、分类、发展动力和研究动向;操作系统在计算机系统中的地位,以及与其他软件的联系与区别;操作系统的资源管理技术:复用、虚拟和抽象;操作系统三个最基本抽象:进程抽象、虚存抽象和文件抽象;操作系统虚拟机及其实现原理;多道程序设计定义、实现基础、基本原理、主要特征、优点缺点。

难点:对并发性和共享性及其关系的深刻理解;多道程序运行的时间关系、处理器及设备利用率计算;操作系统在计算机系统中的地位和作用;操作系统与其他软件的联系与区别;对操作系统三个最基本抽象的深刻理解,虚拟机的定义及其实现原理。

解决办法:讲解操作系统是计算机系统的核心和灵魂,是各类软件系统中最复杂的软件之一,是软件系统中的基础软件;提醒学生注意学习方法、激发学习兴趣,学习本课程最终目标是建立起以操作系统为中心的计算机系统的系统级的认识和全局性把握;强调操作系统是理论性与实践性并重的课程,理论与实践相结合十分重要,既要学好原理,又要动手实践,做到课程教学与实验内容彼此呼应、掌握基本原理与提高编程能力相互并重;多道程序设计是讲授的重点之一,让学生理解和掌握多道程序设计原理,实现它必须解决的若干问题,基本调度思想,理解计算机效率的计算方法;可通过图解方法介绍操作系统三个最基本抽象,在此基础上再介绍虚拟机,让学生牢固掌握操作系统资源管理技术;本知识单元主要要求是讲清楚“操作系统是什么?为什么要它?它干什么?它如何干?”等问题,回顾操作系统的发展历史和分类,有助于理解操作系统的实质,提醒学生带着以上问题学习操作系统;建议学生多看参考书和参考资料,多浏览相关网站,并为学生提供这类信息资源。

2、接口与服务重点:操作系统接口、操作系统服务;POSIX标准、访管指令、应用编程接口API、标准库函数;程序接口与系统调用;操作接口与系统程序;shell概念、变量、命令、语句及其简单程序设计。

操作系统试题-ok

操作系统试题-ok

一、选择题1. D关心的主要问题。

D.高级程序设计语言的编译器2.以下C。

C.文档编辑3.单一C C.并发程序4.批处理系统B B.失去了交互性5.进程和程序D D.动态和静态特征6.引入多道程序C C.大大提高7.一个进程被 B.进程状态变为就绪8.在操作系统C.可以共享允许共享的系统资源9.处于后备状态A.外存10.进程从运行状态A.输入或输出事件发生11.用户在C_ C.作业12.操作系统A.宏观的高级管理13.外存(如磁盘)B.必须在CPU访问之前移入内存14.可由CPU调用 D.物理地址空间15.当程序经过编译B.目标程序16.在分段管理中A.以段为单位分配,每段是一个连续存储区17. _C_____存储管理方式提供一维地址结构。

C.分页18. _____A_____是指有A.系统文件19.文件代表了_C__A.硬件20.文件系统为_C_ C.索引文件21.文件的存储方法依赖 C.A和B22.在_____A____中,不可能产生系统抖动的现象。

A.固定分区管理23.下列_____A_____物理结构文件不便于文件的扩充。

A.连续文件24.CPU输出数据的速度C.缓冲技术25.通道是一种 C.I/O专用处理机26~28.当因资源竞争可能会引起死锁时,可以有两种策略对付:_____A_____和____C______,其中_____A_____付出的代价较高。

A.死锁发生前的避免和预防 C .死锁发生后的检测和修复29.缓冲技术用于_A.提高主机和设备交换信息的速度30.破坏死锁的四个必要条件之一 D.环路等待31.死锁预防是保证系统 D.资源有序分配法32. D不是操作系统关心的主要问题。

D.高级程序设计语言的编译器33.下面哪一项不是D.创建PCB34.引入多道程序A.充分利用CPU,减少CPU等待时间35.在一般操作系统 D.进程调度36.设备管理要达到如下的目的:A.资源利用率高37.进程所获得的资源在未使用完之前C.不可抢占条件38.独占分配技术A.一个进程39.虚拟分配技术 B.独占设备40.互斥条件是指 A.某资源在一段时间内只能由一个进程占有,不能同时被两个或两个以上的进程占有。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验一:进程创建与撤消一.实验目的(1)通过在Windows任务管理器中对程序和进程进行响应的管理操作,熟悉操作系统进程管理的概念。

(2)加深对进程概念的理解和进程创建与撤消算法,进一步认识并发执行的实质。

二.实验属性该实验为设计性实验。

三.实验仪器设备及器材普通PC386以上微机四.实验要求本实验要求2学时完成。

本实验要求完成如下任务:(1)进程管理认识:通过windows “任务管理器”观察进程的状态,完成:进行进程的创建、切换和撤销;显示其他进程计数器;更改正在运行的进程的优先级;使用多个参数评估正在运行的进程的活动;查看CPU和内存使用情况的图形和数据。

(终止进程时要小心,有可能导致不希望发生的结果,包括数据丢失和系统不稳定等。

)(2)进程创建与撤销:通过系统调用编程实现进程的创建与撤销功能,并在屏幕上观察进程活动的结果。

(3)模拟级—以OS设计师身份编程模拟实现进程创建与撤销功能,并在屏幕上观察进程活动的结果。

(4)总体运行效果。

五.实验提示--模拟级编程1、数据结构定义:自行定义了一个类,把进程信息封装到里面。

string pcbPath;string pcbName; //进程名string pcbType; //状态string pcbLeve; //线程优先级//路径public void SetpcbPath(string value) {pcbPath = value;}public string getpcbPath(){return pcbPath;}//名称public void SetPcbName(String value) {pcbName = value;}public string GetPcbName(){return pcbName;}//类型public void SetPcbType(String value) {pcbType = value;}public string GetpcbType(){return pcbType;}//优先级public void SetPcbLeve(string value){pcbLeve = value;}public String GetPcbLeve(){return pcbLeve;}2、函数reatePcb()进程创建:将进程信息存到类里面,并取出来放到ListBox中,展现出来。

给用户查看与操作;public void CreatePcb(){if (BollType == 1){SetpcbPath(comboBox1.Text);SetPcbName(textBox1.Text);SetPcbLeve(comboBox2.Text);SetPcbType("运行");System.Diagnostics.Process.Start(comboBox1.Text);listBox1.Items.Add("名称:"+GetPcbName()+" |状态:"+GetpcbType()+" |优先级:"+GetPcbLeve()+" |路径:"+getpcbPath());}else{SetpcbPath(comboBox1.Text);SetPcbName(textBox1.Text);SetPcbLeve(comboBox2.Text);SetPcbType("就绪");listBox1.Items.Add("名称:" + GetPcbName() + " |状态:" + GetpcbType() + " |优先级:" + GetPcbLeve() + " |路径:" + getpcbPath());}}RunReady()进程就绪:private void RunReady_Click(object sender, EventArgs e){if (listBox1.SelectedIndex < 0){return;}string infor = listBox1.SelectedItem.ToString();//获取BoxList选中的数值int PanBie = infor.IndexOf("状态:") + 3;string OffJC = infor.Substring(PanBie, 2);if (OffJC == "运行"){MessageBox.Show("Sorry,该程序已经再运行,无需转换为运行状态!");return;}else{infor=infor.Replace("就绪","运行");listBox1.Items.RemoveAt(listBox1.SelectedIndex);listBox1.Items.Add(infor);int Runindex = infor.IndexOf("|路径:")+4;string Runpcb = infor.Substring(Runindex,infor.Length-Runindex);System.Diagnostics.Process.Start(Runpcb);}}pcbKill_Click(进程终止:杀死进程,并将对应的listbox对应项删除。

private void pcbKill_Click(object sender, EventArgs e){if (listBox1.SelectedIndex < 0){return;}string OffJC = listBox1.SelectedItem.ToString();//获取BoxList选中的数值int bigin = OffJC.IndexOf("名称:") + 3;int end = OffJC.IndexOf(".");OffJC = OffJC.Substring(bigin, end - bigin);System.Diagnostics.Process[]myProcesses=System.Diagnostics.Process.GetProcesses();foreach (System.Diagnostics.Process myProcess in myProcesses){if (OffJC == myProcess.ProcessName)myProcess.Kill();}listBox1.Items.RemoveAt(listBox1.SelectedIndex);}就绪队列输出函数:就绪队列与已运行进程并存,未运行的可以切换至运行状态,已经运行的可以被撤销。

主函数:查看Win7进程并撤销进程、新建进程并输入新进程参数、调用创建函数、输出就绪队列;输入进程名称、调用终止函数、输出就绪队列。

3、主界面设计:进程创建、进程撤销、就绪队列显示列表;数据输入和就绪,运行队列显示区。

4、功能测试:从显示出的就绪和运行队列状态,查看操作的正确与否,并且能改变其状态。

六.实验总结自身比较喜欢C#窗口程序,而且此次试验并不是太大,C#中Windows应用窗体程序控件较多,更贴近于学习内容,更有利于试验,操作也会更加简洁。

如果用VC6.0去写可能会比较费劲而且不便于操作,界面也不会太美观。

七.代码:using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;namespace JSJ_OperatSystem{public partial class Form1 : Form{public Form1(){InitializeComponent();}private void Form1_Load(object sender, EventArgs e){ShowJC();}private void Msure_Click(object sender, EventArgs e){if (PCBCreate.Checked == true){JC2 jc = new JC2();jc.Show();}if (PCBExit.Checked == true){Application.Exit();}}public void ShowJC(){listBox1.Items.Clear();System.Diagnostics.Process[] myProcesses = System.Diagnostics.Process.GetProcesses();foreach (System.Diagnostics.Process myProcess in myProcesses){String TitleJC="";if (myProcess.MainWindowTitle == ""){TitleJC="无";}else{TitleJC=myProcess.MainWindowTitle;}listBox1.Items.Add("名称:" + myProcess.ProcessName + " 标题:" + TitleJC + " ID:" + myProcess.Id);}}private void WinJCkill_Click(object sender, EventArgs e){String OffJC = listBox1.SelectedItem.ToString();//获取BoxList选中的数值if (OffJC == ""){return;}OffJC = OffJC.Substring(OffJC.IndexOf("名称:") + 3, OffJC.IndexOf(" 标题:") - 3);System.Diagnostics.Process[] myProcesses = System.Diagnostics.Process.GetProcesses();foreach (System.Diagnostics.Process myProcess in myProcesses){if (OffJC == myProcess.ProcessName)myProcess.Kill();}ShowJC();}}}using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;using System.IO;namespace JSJ_OperatSystem{public partial class JC2 : Form{public JC2(){InitializeComponent();}private void Founding_Click(object sender, EventArgs e){OpenFileDialog opf = new OpenFileDialog();if (opf.ShowDialog() == DialogResult.OK)comboBox1.Text = opf.FileName;}private void comboBox1_TextChanged(object sender, EventArgs e){int start = stIndexOf("\\")+1;textBox1.Text = comboBox1.Text.Substring(start, comboBox1.Text.Length - start); }int BollType = 0;private void JCRUN_Click(object sender, EventArgs e){BollType = 1;if (comboBox1.Text == ""|| comboBox2.Text==""){MessageBox.Show("请输入完整信息!","提醒:");return;}CreatePcb();}private void JCPAIXU_Click(object sender, EventArgs e){BollType = 0;if (comboBox1.Text == "" || comboBox2.Text == ""){MessageBox.Show("请输入完整信息!", "提醒:");return;}软件121 张二磊201200834125CreatePcb();}/////////////////////////////////进程信息//////////////////////////////////// string pcbPath;string pcbName; //进程名string pcbType; //状态string pcbLeve; //线程优先级//路径public void SetpcbPath(string value){pcbPath = value;}public string getpcbPath(){return pcbPath;}//名称public void SetPcbName(String value){pcbName = value;}public string GetPcbName(){return pcbName;}//类型public void SetPcbType(String value){pcbType = value;}public string GetpcbType(){return pcbType;}//优先级public void SetPcbLeve(string value){pcbLeve = value;}public String GetPcbLeve(){return pcbLeve;}public void CreatePcb(){if (BollType == 1){SetpcbPath(comboBox1.Text);SetPcbName(textBox1.Text);SetPcbLeve(comboBox2.Text);SetPcbType("运行");System.Diagnostics.Process.Start(comboBox1.Text);listBox1.Items.Add("名称:"+GetPcbName()+" |状态:"+GetpcbType()+" |优先级:"+GetPcbLeve()+" |路径:"+getpcbPath());}else{SetpcbPath(comboBox1.Text);SetPcbName(textBox1.Text);SetPcbLeve(comboBox2.Text);SetPcbType("就绪");listBox1.Items.Add("名称:" + GetPcbName() + " |状态:" + GetpcbType() + " |优先级:" + GetPcbLeve() + " |路径:" + getpcbPath());}}private void pcbKill_Click(object sender, EventArgs e){if (listBox1.SelectedIndex < 0){return;}string OffJC = listBox1.SelectedItem.ToString();//获取BoxList选中的数值int bigin = OffJC.IndexOf("名称:") + 3;int end = OffJC.IndexOf(".");OffJC = OffJC.Substring(bigin, end - bigin);System.Diagnostics.Process[] myProcesses = System.Diagnostics.Process.GetProcesses();foreach (System.Diagnostics.Process myProcess in myProcesses){if (OffJC == myProcess.ProcessName)myProcess.Kill();}listBox1.Items.RemoveAt(listBox1.SelectedIndex);}private void RunReady_Click(object sender, EventArgs e){if (listBox1.SelectedIndex < 0)软件121 张二磊201200834125{return;}string infor = listBox1.SelectedItem.ToString();//获取BoxList选中的数值 int PanBie = infor.IndexOf("状态:") + 3;string OffJC = infor.Substring(PanBie, 2);if (OffJC == "运行"){MessageBox.Show("Sorry,该程序已经再运行,无需转换为运行状态!"); return;}else{infor=infor.Replace("就绪","运行");listBox1.Items.RemoveAt(listBox1.SelectedIndex);listBox1.Items.Add(infor);int Runindex = infor.IndexOf("|路径:")+4;string Runpcb = infor.Substring(Runindex,infor.Length-Runindex); System.Diagnostics.Process.Start(Runpcb);}}}}。

相关文档
最新文档