目录。第一章基本原理 2
1.1 进程的引入和定义 2
1.2 进程的特征 2
1.3 进程的控制 3
1.4 进程的调度 4
1.5 进程互斥与同步 4
第二章功能描述 5
2.1 功能描述 5
2.2 详细描述 5
第三章界面操作 6
第四章功能实现 8
4.1流程图 8
4.2**解析 9
第五章实验心得 15
资源共享、程序并发执行是现代操作系统的重要特征,而进程则是操作系统中独立运行的动态实体,同时又是申请资源和分配资源的基本单位。这个分配资源的基本单位和动态实体被称为“进程”(process)。
1.单道程序与顺序执行。
系统每次只允许一道程序运行,在运行期间,该程序将独占整个计算机系统资源,且系统按照程序规定的步骤顺序地执行,在该程序执行完之前,其它程序只能等待。
顺序执行的特点:顺序性、封闭性和可再现性。
顺序执行使系统管理简单,程序编制调试都很容易,但系统资源利用率低。
2. 多道程序与并发执行。
系统允许多个程序交替执行,一道程序不用cpu时,另一道程序就马上使用,这种交替执行在宏观上表现为同时执行,这就是程序的并发性,其目的可大大提高处理器的利用率。
并发执行的特点:异步性、竞争性、失去可再现性。
3. 概念的引入。
在单用户、单任务操作系统中,所有计算机资源在某一时刻只能为一个任务(程序)所占有,如有多个任务,它们只能顺序执行,不存在资源共享问题。但是在多任务的操作系统中,则允许多个任务并发运行,如在windows操作系统的pc机上,用户可以一边编程,一边欣赏**,这对于运行在dos系统的pc机来讲只能望洋兴叹。这就在于计算机资源分配单位的进程与程序的不同。
4.进程的定义。
进程(process)是执行中的程序,这个程序是一个具有一定独立功能的程序。归纳为:进程是一个具有独立功能的、可并发执行的程序关于某个数据集合上的一次动态执行过程。
动态性。进程是一个运行过程,它具有生命周期,一个由产生到消亡的过程。进程具有动态的地址空间,因资源分配等而使地址空间的大小和内容都动态变化。
地址空间的内容包括**(指令执行和处理器状态的改变)、数据(变量的生成和赋值)和系统控制信息(进程控制块的生成和删除)。
独立性。进程是一个可以独立运行的基本单位。各进程的地址空间相互独立,除非采用进程间的通讯,否则不能相互影响。
并发性。也称异步性,指从宏观上看,多个进程能在同一时间段内同时运行,它们轮流占有cpu和各种资源。
结构化。进程地址空间均为结构划分,如**段、数据段和核心段。
进程和程序是两个相关的不同概念,它们在以下几个方面存在区别和联系。
进程是动态的,程序是静态的。进程会因条件的变化而发生状态的改变。程序是有序**的集合;进程是程序的执行。进程通常不可以在计算机之间迁移;而程序通常可以复制。
进程是暂时的,程序是永久的。进程是一个状态变化的过程,程序则可长久保存。
进程与程序的组成不同,进程包括程序、数据和进程控制块。
进程与程序是密切相关的。通过多次执行,一个程序可以对应多个进程;通过调用关系,一个进程可以包括多个程序。进程可创建另一个进程,而程序并不能形成新的程序。
操作系统对进程的控制是依据用户命令和系统状态来决定的。进程控制的功能是创建和撤消进程,完成进程状态的转换。进程控制程序属于操作系统的内核程序。
1. 原语概念。
一条原语由若干条机器指令组成,是机器指令的延伸,能完成一个特定的功能,是一种特殊的系统调用命令。它的特点是执行时不可中断,且不允许原语并发执行,即原子性。
对系统中所有进程的生命历程进行控制的原语称为进程控制原语,与进程控制有关的操作原语有:创建原语(create)、停止原语(halt)、挂起原语(sus-
pend)、激活原语(activate)、阻塞原语(block)、唤醒原语(wakeup)等基本原语。
2.内核概念。
内核是系统的控制和协调的中心,在管态下运行。它的基本功能可以归结为以下三条:
中断处理。中断处理是操作系统内核的基本功能,是整个操作系统赖以活动的基础,如进程调度、设备驱动、文件操作以及程序并发等,都由中断进行驱动。
进程管理。 进程管理包括进程的创建和撤消、进程状态的转换、进程调度以及控制进程的并发执行。
资源管理的基本操作。资源管理的基本操作包括时钟管理、设备管理,以及对文件系统进行基本控制和驱动。
3. 线程的概念。
在操作系统中引入进程的目的,是为了使多个任务并发,以提高资源利用率,那么在操作系统中再引入线程的目的,则主要是为了提高系统的执行效率,减小并发执行的时间和调度切换时间,使操作系统具有更好的并发性。
进程是一个资源拥有者,因而,在进程的创建、撤消和切换中,系统必须为之付出较大的时间开销。如果将资源分配和处理器调度放在不同的活动实体中,也就是把进程所占资源与进程中的运行**分离,那么在一个地址空间中便可运行多个指令流,这样就产生了线程。
线程是进程中一个可独立调度的实体。它的优点体现在以下几个方面:
线程的创建时间比进程短;
线程的终止时间比进程短;
同进程内的线程切换时间比进程短;
由于同进程内的线程共享内存和文件资源,因此可直接进行不通过内存的通信。
在多道程序环境下,一旦为用户作业建立了进程并装入到内存,则多个进程就要共享处理器资源,这就必然会引起对处理器的竞争。进程调度的主要任务就是按照一定的策略动态地把处理器分配给就绪队列中的某个进程,以实现进程在就绪和执行状态间的转换,直到该进程完成为止。
进程互斥是指由于共享资源所要求的排他性,进程间要相互竞争,以使用这些共享资源。
进程互斥的解决办法有两种,一是由竞争各方平等协商;二是引入进程管理者,由管理者来协调竞争各方对互斥资源的使用。
操作系统中实现进程互斥和同步的机制都称为同步机构。通常采用“锁”和“信号量”的机制。一个控制这些同步机构的程序被称为同步原语。
同步一般是指两个事件的发生有着某种时序上的关系,进程同步是指系统中的几个进程为共同完成一个任务而产生的相互合作、协同运行关系。
把一组并发进程因直接制约而互相发送消息,互相合作,互相等待,使得各进程按一定的速度执行的过程叫做进程间的同步。进程同步同样可以用p、v操作来实现。
该程序实现的是的进程,获取进程,更新,显示进程的信息。显示进程中的线程信息id和优先级。
当启动该程序时,便会出现图2-1所示的窗口。
processinfo首先枚举目前正在运行的一组进程,并在顶部的组合框中列出每个进程的名字和id。然后,第一个进程被选定,并在较大的编辑控件中显示关于该进程的信息。可以看到,与该进程的id一道显示的还有它的父进程的 id,进程的优先级类,以及该进程环境中当前正在运行的线程数目。
当查看这个进程列表时,可以使用vmmap菜单项(当查看模块信息时,该菜单项禁用)。
如果选定vmmap菜单项,可使vmmap示例应用程序启动运行。该应用程序将在指定进程的地址空间中运行。
模块信息部分显示了映射到进程的地址空间中的模块的列表(可执行文件和 dll文件)。
固定模块是指进程初始化时隐含加载的模块。如果是显式加载的 dll模块,则显示 dll的使用计数。第二个域显示映射模块的地址。
如果模块不是在它的首选基地址上映射的,那么首选基地址显示在括号中。第三个域显示模块的大小(用字节数表示)。最后显示的是模块的全路径名。
线程信息部分显示了该进程中当前运行的一组线程。每个线程 id和优先级均被显示。除了进程信息外,可以选择 modules!
菜单项。这将使得processinfo能够枚举当前通过系统加载的模块,并将每个模块的名字放入顶部的组合框。然后processinfo可以选定第一个模块,并显示关于它的信息,如图2-2所示。
界面显示。1 启动exe :显示下面界面。
图2-12选择 modules!菜单项。processinfo能够枚举当前通过系统加载的模块,并将每个模块的名字放入顶部的组合框。如下图所示:
图2-2部分一:显示大文本框中的内容。
voidaddtext(hwnd hwnd, pctstr pszformat, .
va_listarglist;//是在c语言中解决变参问题的一组宏。
va_start(arglist, pszformat);/va_start宏初始化变量刚定义的va_list变量,//这个宏的第二个参数是第一个可变参数的前一个参数,是一个固定的参数。*/
tchar sz[20 * 1024];
edit_gettext(hwnd, sz, chdimof(sz));
/chdimof是一个宏#definechdimof(array)(sizeof(array)/sizeof(array[0]))
_vstprintf(_tcschr(sz, 0), pszformat, arglist);
/格式化字符串到指定内存位置_tcschr(sz,0)sz中有以0为ascii的字符的位置,/pszformat为格式,arglist可变参数列表。
edit_settext(hwnd, sz);
va_end(arglist);
/va_end宏结束可变参数的获取。然后就可以在函数里使用第二个参数了。
/如果函数有多个可变参数的,依次调用va_arg获取各个参数。
操作系统课程设计
课程设计 河北大学工商学院。装。订。线。操作系统课程设计。题目 操作系统课程设计 学院工商学院 学部信息科学与工程 专 操作系统课程设计。题目 操作系统课程设计 学院工商学院 学部信息科学与工程 专业计算机类 学号 姓名。指导教师。年 6 月 24 日。设备管理 2 2.1设计任务2 2.2设计要求...
操作系统课程设计
银行家算法模拟。系别 班级 组员 银行家算法模拟。1.课程设计目的。通过本次课程设计,加深对最经典的避免死锁的银行家算法的理解,掌握死锁形成必要条件 安全状态等概念的理解,通过用c语言编程模拟该算法,并在windows平台上实现,更好地掌握操作系统的原理及实现方法。2.任务及要求。设n为系统进程的个...
操作系统课程设计
学生实习实训报告。实习类型 操作系统课程设计 学号 0901110005 学生姓名 田兴杰 指导教师 曹春梅 专业班级 信息安全技术0901班 院 部 电子信息系 2011年 1 月 7日。实习实训成绩评定表。目录。目录3 摘要4关键字4 1.1虚拟机简介5 1.1.1 一般意义的虚拟机5 1.1....