操作系统有五个方面的功能 目前,己经有若干成熟的操作系统,如则区分时操作系统,实时操作系统,阳— 眺操作系统,网络操作系统和叨操作环境等。从操作计算机的角度讲,操作系统的 主要功能可以简单地理解为两点,第一是对内,管理计算机内部各种硬件和软件资源,使它们最大限度地发挥其作用。第二是对外,提供给操作人员一个良好的操作界面, 方便操作人员使用计算机。具体地说,操作系统有五个方面的功能。 1.处理器管理 处理器是完成运算和控制的设备。在多道程序运行时,每个程序都需要一个处理器,而一般计算机中只有一个处理器。操作系统的一个功能就是安排好处理器的使用权, 也就是说,在每个时刻处理器分配给哪个程序使用是操作系统决定的。 2.存储管理 计算机的内存中有成千上万个存储单元,都存放着程序和数据。何处存放哪个程序,何处存放哪个数据.都是由操作系统来统一安排与管理的o这是操作系统的存储功能 o 3.设备管理 计算机系统中配有各种各样的外部设备。操作系统的设备管理功能采用统一管理模式,自动处理内存和设备间的数据传递,从而减轻用户为这些设备设计输入输出程序 的负担。 4.作业管理 作业是指独立的、要求计算机完成的一个任务。操作系统的作业管理功能包括两点 尸是在多道程序运行IC现货商时,使得备用户合理地共享计算机系统资源22是提供 给操作人员一套控制命令用来控制程序的运行o 5.文件管理 计算机系统中的程序或数据都要存放在相应存储介质上。为了便于管理,操作系统 招相关的信息集中在一起,称为文件。操作系统的文件管理功能就是负责这些文件的 存储、检索、更新、保护和共享。 从操作人员的角度上讲,操作系统的作业管理和文件管理是可见的,而处理器管理、存储管理和设备管理功能是不可见的。操作系统提供大量操作控制命令和系统调用命令。操作人员主要是通过操作控ABC电子制命令来使用操作系统,称为命令执行方式。程序人员利用系统调用命令来调用操作系统功能,称为系统调用方式。cjmc%ddz
UC/OS-II学习笔记之——任务切换是怎样实现的问题是, o Uc/OS-II如何切换任务?通过任务调度器OS_Sched(),那么谁在调用这个函数? o CPU在这里肯定有作用,因为任务切换必然涉及到CPU寄存器的入栈和出栈, 那么这一块工作是如何完成的? 书上讲:为了做到任务切换,运行OS_TASK_SW(),人为模仿一次中断。中断服务子程序或陷阱处理(trap hardler),也称作事故处理(exception handler),必须给汇编语言函数OSCtxSw()提供中断向量[1.92]。 那么,“人为模仿一次中断”是什么意思? 是指:OS_TASK_SW()触发了一个中断,由中断完成了任务切换? 阅读源代码,查找答案…… #define OS_TASK_SW()OSCtxSw()//这是一个宏调用,定义在os_cpu.h,Os_cpu_a.asm中定义了OSCtxSw NVIC_INT_CTRL EQU0xE000ED04 NVIC_PENDSVSET EQU0x10000000 ;****************************************************************************** ;PERFORM A CONTEXT SWITCH(From task level) ;void OSCtxSw(void) ; ;Note(s):1)OSCtxSw()is called when OS wants to perform a task context switch.This function ;triggers the PendSV exception which is where the real work is done. ;****************************************************************************** OSCtxSw LDR R0,=NVIC_INT_CTRL;Trigger the PendSV exception(causes context switch) LDR R1,=NVIC_PENDSVSET STR R1,[R0] BX LR 注释说明该段汇编代码触发了一个PendSV的异常。
OS实验指导四——虚拟存储器管理
————————————————————————————————作者:————————————————————————————————日期: 2
《操作系统》实验指导四 开课实验室:A207、A209 2015/11/23 、2015/11/24 实验类型设计 实验项目(四)虚拟存储器管理实验 实验学时 4 一、实验目的 设计一个请求页式存储管理方案,并编写模拟程序实现。 二、设备与环境 1. 硬件设备:PC机一台 2. 软件环境:安装Windows操作系统或者Linux操作系统,并安装相关的程序开发 环境,如C \C++\Java 等编程语言环境。 三、实验要求 1) 上机前认真复习页面置换算法,熟悉FIFO算法和LRU页面分配和置换算法的过程; 2) 上机时独立编程、调试程序; 3) 根据具体实验要求,完成好实验报告(包括实验的目的、内容、要求、源程序、实例运行 结果截图)。 四、实验内容 1、问题描述: 设计程序模拟FIFO和LRU页面置换算法的工作过程。假设内存中分配给每个进程的最小物理块数为m,在进程运行过程中要访问的页面个数为n,页面访问序列为P1, … ,Pn,分别利用不同的页面置换算法调度进程的页面访问序列,给出页面访问序列的置换过程,并计算每种算法缺页次数和缺页率。 2、程序具体要求如下: 编写程序用来模拟虚拟页式存储管理中的页面置换 要求: 1)快表页面固定为4块 2)从键盘输入N个页面号 3)输出每次物理块中的页面号和缺页次数,缺页率 4)实现算法选择
3、程序流程图 3、源程序参考: (1)FIFO 算法部分 #include "stdio.h" #define n 12 #define m 4 void main() { int ym[n],i,j,q,mem[m]={0},table[m][n]; char flag,f[n]; printf("请输入页面访问序列\n "); for(i =0;i 实验报告撰写要求实验报告要求具有以下内容: 一、实验目的 二、实验内容 三、实验要求 四、算法流程图 五、给出测试数据及运行结果 六、实验体会或对改进实验的建议 实验1 进程调度(2学时) 一、实验目的 通过实验加强对进程调度算法的理解和掌握。 二、实验内容 编写程序实现基于优先级的时间片轮转调度算法。 三、实验要求 1、假定系统有5个进程,每个进程用一个进程控制块PCB来代表,进程控制块的结构如下图1.1所示: 图1.1 其中: 进程名:作为进程的标识,假设五个进程的进程名分别为p1,p2,p3, p4,p5。 指针:进程按顺序排成循环链表,用指针指出下一个进程的进程控制块首地址,最后一个进程中的指针指出第一个进程的进程控制块首地址。 要求运行时间:假设进程需要运行的单位时间数。 已运行时间:假设进程已经运行的单位时间数,初值为0。 状态:可假设有两种状态,就绪状态和结束状态。进程的初始状态都为就绪状态。 2、每次运行所设计的处理器调度程序调度进程之前,为每个进程随机确定它的要求运行时间。 3、此程序是模拟处理器调度,因此,被选中的进程并不实际启动运行,而是执行 已运行时间+1 来模拟进程的一次运行,表示进程已经运行过一个单位时间。 4、在所设计的程序中应有显示语句,能显示每次被选中的进程名以及运行一次后进程队列的变化。 实验2 银行家算法(2学时) 一、实验目的 理解银行家算法,掌握进程安全性检查的方法及资源分配的方法。 二、实验内容 编写程序实现银行家算法,并验证程序的正确性。 三、实验要求 编制模拟银行家算法的程序,并以下面给出的例子验证所编写的程序的正确性。 例子:某系统有A、B、C、D 4类资源共5个进程(P0、P1、P2、P3、P4)共享,各进程对资源的需求和分配情况如下表所示。 现在系统中A、B、C、D 4类资源分别还剩1、5、2、0个,请按 评语: 课中检查完成的题号及题数: 课后完成的题号与题数: 成绩: 指导教师: 实验报告三 实验名称:七、八日期:2013.05.23 班级:10011007 学号:2010302555 姓名:杨宏志实验七理解线程的相关概念 1. 实验目的 理解当操作系统引入线程的概念后,进程是操作系统独立分配资源的单位,线程成为系统调度的单位,与同一个进程中的其他线程共享程序空间。 2. 实验预习内容 预习线程创建和构造的相关知识,了解C语言程序编写的相关知识。 3. 实验内容及步骤 (1)编写一个程序,在其main()函数中创建一个(或多个)线程,观察该线程是如何与主线程并发运行的。输出每次操作后的结果; (2)在main()函数外定义一个变量shared(全局变量),在main()中创建一个线程,在main()中和新线程shared 进行循环加/减操作,观察该变量的变化; (3)修改程序把shared 变量定义到main()函数之内,重复第(2)步操作,观察该变量的变化。 4. 实验总结 (1) 观察上述程序执行结果,并分析原因; (2) 提交源程序清单,并附加流程图与注释。思考:分析进程和线程的不同之处。 5. 具体实现 1)观察线程并发性: #include 操作系统的五大功能是什么 操作系统的功能主要体现在对计算机资源――微处理器、存储器、外部设备、文件和作业五大计算机资源的管理,操作系统将这种管理功能分别设置成相应的程序管理模块,每个管理模块分管一定的功能。即操作系统的五大功能。 1、微处理器管理功能 在大型操作系统中.可存在多个微处理器,并同时可管理多个作业。怎样选出其中一个作业进入主存储器难备运行,怎样为这个作业分配微处理器等等,都由微处理器管理模块负责。微处理器管理模块,要对系统中各个微处理器的状态进行登记,还要登记各个作业对微处理器的要求。管理模块还要用一个优化算法实现最佳调度规则。把所有的微处理器分配给各个用户作业使用。最终日的是提高微处理器的利用率。这就是操作系统的微处理器管理功能。 2、内存管理功能 内存储器的管理,主要由内存管理模块来完成。内存管理模块对内存的管理分三步。首先为各个用户作业分配内存空间;其次是保护已占内存空间的作业不被破坏;最后,是结合硬件实现信息的物理地址至逻辑地址的变换。使用户在操作中不必担心信息究竟在四个具体空间――即实际物理地址,就可以操作,这样就方便了用户对计算机的使用和操作。内存管理模块对内存的管理是使用一种优化算法对内存管理进行优化处理,以提高内存的利用率。这就是操作系统的内存管理功能。 3、外部设备管理功能 由于计算机的不断发展,其应用领域越来越广泛,应用技术越来越提高,应用方法越来越简便,与用户的界面越来越友好,随之外部设备的种类也日益增多,功能不断提高,档次日渐升级,因此,操作系统的设备管理模块的功能也必须跟上外部设备的发展而不断发展、不断升级以适应外部设备的日益发展的需要。设备管理模块的任务是当用户要求某种设备时,应马亡分配给用户所要求的设备,并技用户要求驱动外部设备以供用户应用。并且对外部设备的中断请求,设备管理模块要给以响应并处理。这就是操作系统的外部设备管理功能。 4、文件管理功能 操作系统对文件的管理主要是通过文件管理模块来实现的。文件管理模块管理的范围包括文件目录、文件组织、文件操作和文件保护。 5、进程管理功能 进程管理也称作业管理,用户交给计算机处理的工作称为作业。作业管理是由进程管理模块来控制的,进程管理模块对作业执行的全过程进行管理和控制。 操作系统的微处理器管理功能、内存管理功能、外部设备管理功能、文件管理功能和进程管理功能简称操作系统的五大功能。这五大功能是较完整的操作系统的共性。 简述操作系统的功能? 答:操作系统是管理软硬件资源、控制程序执行,改善人机界面,合理组织计算机工作流程和为用户使用计算机提供良好运行环境的一种系统软件。从资源管理的观点来看操作系统具有以下几个主要功能。 (1)处理机管理处理器管理的是处理中断时间和处理器调度。 (2)存储管理存储管理的主要任务是管理存储器资源,为多道程序运行提供有力的支撑。存储管理的主要功能包括?1)存储分配:存储管理将根据用户程序的需要给它分配存储器资源。2)存储共享:存储管理能让主存中的多个用户程序实现存储资源的共享,以提高存储器的利用率。3)存储保护:存储管理要把各个用户程序相互隔离起来互不干扰,更不允许用户程序访问操作系统的程序和数据,从而保护用户程序存放在存储器中的信息不被破坏。4)存储扩充:由于物理内存容量有限,难于满足用户程序的需求,存储管理还应该能从逻辑上来扩充内存储器,为用户提供一个比内存实际容量大得多的编程空间,方便用户的编程和使用。 (3)设备管理设备管理的主要任务:1)管理各类外围设备,完成用户提车的I/O信息的传送速度,发挥I/O设备的并行性,提高I/O设备的利用率。2)提供每种设备的设备驱动程序和中断处理程序,向用户睥睨硬件使用细节。设备管理应该具有以下功能:1)提供外围设备的控制与处理。2)提供缓冲区的管理。3)提供外围设备的分配。4)提供共享性外围设备的驱动。5)实现虚拟设备。 (4)文件管理文件管理则是对系统的信息资源的管理。它的主要任务:对用户文件和系统文件进行有效管理,实现案名存取;实现文件的共享、保护和保密,保证文件的安全性;并提供给用户一套能方便使用文件的操作和命令。 (5)作业管理作业管理的任务:为用户提供一个使用系统的良好环境,使用户能有效地组织自己的工作流程,病史整个系统能高效的运行。作业管理的功能包括任务、界面管理、人机交互、图形界面、语言控制和虚拟现实等。 (6)网络与通信管理网上资源管理功能:保证信息资源的安全性和一致性。数据通信管理功能;按照通信协议的规定,完成网络上计算机质监的信息传送。网络管理功能:包括故障管理、安全管理、性能管理、记帐管理和配置管理。 操作系统实验指导 目录 实验一 Windows2000进程观测 (1) 实验二 Windows2000进程控制 (6) 实验三Windows2000线程的运行 (14) 实验四Windows2000线程同步 (19) 实验五经典同步问题的实现 (27) 实验六Windows2000内存管理 (31) 实验七Windows2000文件管理 (40) 实验八安装Linux操作系统 (48) 实验九Linux 基本操作 (49) 实验十Linux下的进程与线程 (55) 实验一 Windows2000进程观测 一、背景知识 Windows 2000可以识别的应用程序包括控制台应用程序、GUI应用程序和服务应用程序。控制台应用程序可以创建GUI,GUI应用程序可以作为服务来运行,服务也可以向标准的输出流写入数据。不同类型应用程序间的惟一重要区别是其启动方法。 Windows 2000是以NT的技术构建的,它提供了创建控制台应用程序的能力,使用户可以利用标准的C++工具,如iostream库中的cout和cin对象,来创建小型应用程序。当系统运行时,Windows 2000的服务通常要向系统用户提供所需功能。 服务应用程序类型需要ServiceMail() 函数,由服务控制管理器(SCM) 加以调用。SCM是操作系统的集成部分,负责响应系统启动以开始服务、指导用户控制或从另一个服务中来的请求。其本身负责使应用程序的行为像一个服务。通常,服务登录到特殊的LocalSystem账号下,此账号具有与开发人员创建的服务不同的权限。 当令C++ 编译器创建可执行程序时,编译器将源代码编译成OBJ文件,然后将其与标准库相链接。产生的EXE文件是装载器指令、机器指令和应用程序的数据的集合。装载器指令告诉系统从哪里装载机器代码。另一个装载器指令告诉系统从哪里开始执行进程的主线程。在进行某些设置后,进入开发者提供的main() 、ServiceMain() 或WinMain() 函数的低级入口点。机器代码中包括有控制逻辑,它所做的事包括跳转到Windows API函数,进行计算或向磁盘写入数据等。 Windows允许开发人员将大型应用程序分为较小的、互相有关系的服务模块,即动态链接库(DLL) 代码块,在其中包含应用程序所使用的机器代码和应用程序的数据。 二、实验目的 通过对Windows 2000编程,进一步熟悉操作系统的基本概念,较好地理解Windows 2000的结构。 三、实验内容与步骤 1. 简单的控制台应用程序 我们先来创建一个名为“Hello,World”的应用程序。 用VC6.0编辑并编译执行程序。 启动VC6.0,选择菜单中的“文件”_“新建”_选择“Win32 Console Application‖,“位置”选择d:\os,“工程名称”输入“1_1”,选择确定后,再下一窗口中选择“一个空文件”。 再次选择VC6.0菜单中的“文件”_“新建”_选择“C++ Souce File‖,文件名为“1_1”。 在编辑窗口编辑“程序1_1”,然后对其进行编译和执行。 观察1_1文件夹中生成的文件各是什么: ____________________________________________________________________ 武汉工程大学计算机科学与工程学院 《操作系统》实验报告 专业班级13计工01班实验地点计工403机房学生学号1305120610 指导教师张立 学生姓名李敏实验时间2014-10-19 /2014- 10-26 实验项目实验二、创建线程及线程通信 实验类别操作性()验证性()设计性(√)综合性()其它实 验 目的及要求(1)熟悉Windows中的线程及进程的创建 (2)掌握利用Windows中的同步机制实现线程同步及通信。 成绩评定表 类别评分标准分值得分合计 上机表现积极出勤、遵守纪律 主动完成实验设计任务 30分 实验报告及时递交、填写规范 内容完整、体现收获 70分 说明: 评阅教师:张立 日期: 2015 年 11 月 1 日 实验内容 一、实验内容 要求:创建线程,利用互斥实现线程共享变量通信。 示例程序:Thread.exe 简要说明: 1、点“创建线程”按钮,创建两个线程,一个线程不断对一个变量加1, 结果显示在第一个文本框中。另一个线程不断对另一个变量减1,结果显示在第二个文本框中。这两个线程之间没有交互,仅用于演示线程的创建。 2、演示线程互斥,点“线程互斥”按钮,创建两个线程,一个线程不断循 环,每次循环对共享变量x做100次加1操作(这100次加1操作作为一个临界区CSa),另一个线程不断循环,每次循环对共享变量x做100次减1操作(这100次减1操作作为一个临界区CSb),结果显示在第三个文本框中。可以看到结果是从0到100,然后又从100回到0。可见CSa 和CSb两个临界区是互斥的。 3、除了没有互斥,其它同2,结果显示在第四个文本框中。可见CSa和CSb 两个临界区的执行是有交叉的,CSa的执行可能被CSb打断,CSb的执行也可能被CSa打断 二、源代码 UINT ThreadA(LPVOID pParam) { CThreadDlg * pParent=(CThreadDlg *)pParam; pParent->DoThreadA(); return 0; } UINT ThreadB(LPVOID pParam) { CThreadDlg * pParent=(CThreadDlg *)pParam; pParent->DoThreadB(); return 0; } UINT ThreadC(LPVOID pParam) { CThreadDlg * pParent=(CThreadDlg *)pParam; pParent->DoThreadC(); return 0; } UINT ThreadD(LPVOID pParam) { CThreadDlg * pParent=(CThreadDlg *)pParam; pParent->DoThreadD(); return 0; 《操作系统》实验报告 实验三进程管理及进程通信 一.实验目的 利用Linux提供的系统调用设计程序,加深对进程概念的理解。体会系统进程调度 的方法和效果。了解进程之间的通信方式以及各种通信方式的使用。 二.实验准备 复习操作系统课程中有关进程、进程控制的概念以及进程通信等内容(包括软中断通信、管道、消息队列、共享内存通信及信号量概念)。熟悉本《实验指导》第五部分有关进程控制、进程通信的系统调用。它会引导你学会怎样掌握进程控制。阅读例程中的程序段。 三.实验方法 用vi 编写c 程序(假定程序文件名为prog1.c) 编译程序$ gcc -o prog1.o prog1.c 或$ cc -o prog1.o prog1.c 运行$./prog1.o 四.实验内容及步骤 用v i编写使用系统调用的C语言程序。 1.编写程序。显示进程的有关标识(进程标识、组标识、用户标识等)。经过5 秒 钟后,执行另一个程序,最后按用户指示(如:Y/N)结束操作。 编译运行结果: 2.编写程序。实现父进程创建一个子进程。体会子进程与父进程分别获得不同返 回值,进而执行不同的程序段的方法。 编译运行: 思考:子进程是如何产生的?又是如何结束的?子进程被创建后它的运行环境是怎样建立的? 答:子进程由fork()函数创建,通过exit()函数自我结束,子进程被创建后核心将为其分配一个进程表项和进程标识符,检查同时运行的进程数目,并且拷贝进程表项的数据,由子进程继承父进程的所有文件。 3.编写程序。父进程通过循环语句创建若干子进程。探讨进程的家族树以 及子进程继承父进程的资源的关系。 程序如下: 编译运行: 思考:①画出进程的家族树。子进程的运行环境是怎样建立的?反复运行此程序看会有什么情况?解释一下。 1839 2247 2248 2252 2254 2249 2251 2253 2250 每一次运行返回的进程号都不相同,但是都符合家族进程树,出现这样 操作系统实验实验二进程管理 学号 1215108019 姓名克帆 学院信息学院 班级 12电子2 实验目的 1、理解进程的概念,明确进程和程序的区别。 2、理解并发执行的实质。 3、掌握进程的创建、睡眠、撤销等进程控制方法。 实验容与要求 基本要求:用C语言编写程序,模拟实现创建新的进程;查看运行进程;换出某个进程;杀死进程等功能。 实验报告容 1、进程、进程控制块等的基本原理。 进程是现代操作系统中的一个最基本也是最重要的概念,掌握这个概念对于理解操作系统实质,分析、设计操作系统都有其非常重要的意义。为了强调进程的并发性和动态性,可以给进程作如下定义:进程是可并发执行的程序在一个数据集合上的运行过程,是系统进行资源分配和调度的一个独立单位。 进程又就绪、执行、阻塞三种基本状态,三者的变迁图如下: 由于多个程序并发执行,各程序需要轮流使用CPU,当某程序不在CPU上运行时,必须保留其被中断的程序的现场,包括:断点地址、程序状态字、通用寄存器的容、堆栈容、程序当前状态、程序的大小、运行时间等信息,以便程序再次获得CPU时,能够正确执行。为了保存这些容,需要建立—个专用数据结构,我们称这个数据结构为进程控制块PCB (Process Control Block)。 进程控制块是进程存在的惟一标志,它跟踪程序执行的情况,表明了进程在当前时刻的状态以及与其它进程和资源的关系。当创建一个进程时,实际上就是为其建立一个进程控制块。 在通常的操作系统中,PCB应包含如下一些信息: ①进程标识信息。为了标识系统中的各个进程,每个进程必须有惟一的标识名或标 识数。 ②位置信息。指出进程的程序和数据部分在存或外存中的物理位置。 ③状态信息。指出进程当前所处的状态,作为进程调度、分配CPU的依据。 ④进程的优先级。一般根据进程的轻重缓急其它信息。 这里给出的只是一般操作系统中PCB所应具有的容,不同操作系统的PCB结构是不同的,我们将在2.8节介绍Linux系统的PCB结构。 操作系统的概念和功能 计算机是一个高速运转的复杂系统:它有CPU、内存储器、外存储器、各种各样的输入输出设备,通常称为硬件资源;它可能有多个用户同时运行他们各自的程序,共享着大量数据,通常称为软件资源。如果没有一个对这些资源进行统一管理的软件,计算机不可能协调一致、高效率地完成用户交给它的任务。 从资源管理的角度,操作系统是为了合理、方便地利用计算机系统,而对其硬件资源和软件资源进行管理的软件。它是系统软件中最基本的一种软件,也是每个使用计算机的人员必须学会使用的一种软件。 4.3.1 操作系统功能 操作系统五大管理功能,即作业管理、存储管理、信息管理、设备管理和处理机管理。这些管理工作是由一套规模庞大复杂的程序来完成的。 作业管理解决的是允许谁来使用计算机和怎样使用计算机的问题。在操作系统中,把用户请求计算机完成一项完整的工作任务称为一个作业。当有多个用户同时要求使用计算机时,允许哪些作业进入,不允许哪些进入,对于已经进入的作业应当怎样安排它的执行顺序,这些都是作业管理的任务。 存储管理解决的是内存的分配、保护和扩充的问题。计算机要运行程序就必须要有一定的内存空间。当多个程序都在运行时,如何分配内存空间才能最大限度地利用有限的内存空间为多个程序服务;当内存不够用时,如何利用外存将暂时用不到的程序和数据“滚出”到外存上去,而将急需使用的程序和数据“滚入”到内存中来,这些都是存储管理所要解决的问题。 信息管理解决的是如何管理好存储在磁盘、磁带等外存上的数据。由于计算机处理的信息量很大而内存十分有限,绝大部分数据都是保存在外存上。如果要用户自己去管理就要了解如何将数据存放到外存的物理细节,编写大量程序。在多个用户使用同一台计算机的情况下既要保证各个用户的信息在外存上存放的位置不会发生冲突,又要防止对外存空间占而不用;既要保证任一用户的信息不会被其他用户窃取、破坏,又要允许在一定条件下多个用户共享,这些都是要靠信息管理解决的。信息管理有时也称为文件管理,是因为在操作系统中通常是以“文件”作为管理的单位。操作系统中的文件概念与日常生活中的文件不同,在操作系统中,文件是存储在外存上的信息的集合,它可以是源程序、目标程序、一组命令、图形、图像或其它数据。 设备管理主要是对计算机系统中的输入输出等各种设备的分配、回收、调度和控制,以及输入输出等操作。 处理机管理主要解决的是如何将CPU分配给各个程序,使各个程序都能够得到合理的运行安排。 从资源管理的角度来看,可以把操作系统看作是控制和管理计算机资源的一组程序;从用户的角度看,操作系统是用户和计算机之间的界面。用户看到的是操作系统向用户提供的一组操作命令,用户可以通过这些命令来使用和操作计算机。因而学会正确使用这些命令就成为学会使用计算机的第一步。 4.3.2 操作系统基本类型 计算机上使用的操作系统种类很多,但其基本类型可以划分为三类,即批处理操作系统、分时操作系统和实时操作系统。 批处理操作系统的设计目标是为了最大限度地发挥计算机资源的效率;在这种操作系统环境下,用户要把程序、数据和作业说明一次提交给系统操作员,输入计算机,在处理过程中与外部不再交互。分时操作系统的设计目标是使多个用户可以通过各自的终端互不干扰地同时使用同一台计算机交互进行操作,就好像他自己独占了该台计算机一样。实时操作系统则要 注意:大题必看否则很难及格! 1、什么是操作系统:操作系统是配置在计算机硬件上带第 一层软件,是对硬件系统的首次扩充。 2、操作系统的作用:作为用户与计算机硬件系统之间带接 口、作为计算机系统资源带管理者、实现啦对计算机资源带抽象 3、操作系统的目标:有效性、方便性、可扩充性、开放性 4、操作系统基本特征(并发性共享性虚拟性异步性)其 中最重要的特征是并发性 5、操作系统带主要功能:处理机管理存储器管理设备管 理文件管理用户接口 6、进程的三种基本状态:就绪(进程调度)执行(请求)阻塞(完成)就绪执行(时间片用完)就绪(P38页) 7、进程的特征:动态性并发性独立性异步性 8、批处理系统带特征:脱机多道成批处理 9、分时系统带特征:多路性独立性及时性交互性 10、常用控制方式有:程序直接控制方式、中断控制方式、方式、通道方式。 11、为什么要引入缓冲区?(1)缓和与设备间速度不匹配的矛盾。 (2) 减少对的中断频率,放宽对中断响应时间的限制。(3) 提高和设备之间的并行性 12、系统由哪几部分组成?以打印机为例说明如何利用该技术实 现多个进程对打印机的共享? 组成:输人井和输出井输入缓冲区和输出缓冲区输入进程和输出进程 对所有提出输出请求的用户进程,系统接受它们的请求时,并不真正把打印机分配给它们,而是由输出进程在输出井中为它申请一空闲缓冲区,并将要打印的数据卷入其中,输出进程再为用户进程申请一张空白的用户打印请求表,并将用户的打印请求填入表中,再将该表挂到打印机队列上。 这时,用户进程觉得它的打印过程已经完成,而不必等待真正的慢速的打印过程的完成。当打印机空闲时,输出进程将从请求队列队首取出一张打印请求表,根据表中的要求将要打印的数据从输出井传到内存输出缓冲区,再由打印机进行输出打印。打印完后,再处理打印队列中的一个打印请求表,实现了对打印机的共享。 13、什么是死锁?产生死锁的必要条件有哪些?处理死锁的方法? 所谓死锁是指多个进程在运行过程中因争夺资源而造成带一种僵局,当进程处于这种僵持状态时,若无外力作用,他们都将无法再向前推进。必要条件:互斥条件请求和保持条件不剥夺条件环路等待条件处理方法:预防死锁避免死锁检验死锁解除死锁 以上为简答题可能出带部分以下全为计算题做题时照猫画虎 uC/OS-II任务堆栈检验(OSTaskStkChk()) 使用OSTaskStkChk()可以返回一个记录所检查堆栈空间的使用情况,包括已使用空间及 空闲空间的大小。但只有用OSTaskCreateExt()建立的任务的堆栈才正常使用OSTaskStkChk()。这个堆栈检验功能的原理很简单,因为OSTaskCreateExt()已经把任务堆栈 每个字节初始为0了,所以只需要从栈底依次扫描每个字节并计数直到当一个字节的内容不 为0,也即从这个字节起的空间已经至少被任务使用过了,得到的计数就是空闲空间的大小,使用空间的大小由栈的总大小减去空闲空间的大小就可以得到。 OSTaskStkChk(INT8U prio,OS_STK_DATA *pdata) /*检查优先级为prio的任务的堆栈使用情况,并把结果存入OS_STK_DATA类型的单元中*/ INT8U OSTaskStkChk(INT8U prio,OS_STK_DATA *pdata) { OS_TCB *ptcb; /*用于执行所要堆栈检测任务的TCB*/ OS_STK *pchk; /*用于指向所要堆栈检测的任务的堆栈*/ INT32U free; /*存放未使用的堆栈容量*/ INT32U size; /*存放堆栈总容量*/ pdata->OSFree=0; /*将用于存放堆栈检测结果的单元进行清零*/ pdata->OSUsed=0; if(prio>OS_LOWEST_PRIO &&prio != OS_PRIO_SELF)/*查看优先级是否在有效范围内*/ { return(OS_PRIO_INVALID); } OS_ENTER_CRITICAL();/*在对任务的TCB内容读取的过程中需要关中断,即TCB是临界资源,不可多个进程同时访问*/ if (prio==OS_PRIO_SELF) /*如果prio的值为OS_PRIO_SELF 即prio==0xFF,系统规定优 先级为当前正在执行的任务*/ { prio=OSTCBCur->OSTCBPrio;/*需要将prio的值更改为当前正在执行任务的优先级*/ } ptcb=OSTCBPrioTbl[prio];/*根据任务的优先级和TCB优先级表,找到所要进程堆栈检测 任务的TCB*/ 实验一熟悉Linux/UNIX操作系统(2学时) [实验目的]: 1.熟悉Linux/UNIX操作系统的基本操作。 2.掌握常用基本命令和系统调用。 [实验内容]: 1.学会开机、登录、退出与关机 (1)开机 很多时候,一台机器上会安装多个操作系统(Operating System,简称OS),因此,在开机时会让用户选择进入哪个OS。例如,显示“Linux LILO:‖,或在Windows2000平台下的菜单选择OS。 选择进入Linux后,Linux初始化过程中会显示大量初始化信息,要求学习者逐渐读懂这些初始化信息,以从这个角度来理解Linux的工作原理。 (2)登录与修改口令 在打开终端或在Neterm之类的程序上进行远程连接后,Linux/UNIX在相应初始化完成后,会在屏幕上显示“login:‖。此时输入用户名(帐号)并键如回车,则系统显示“password:‖,然后输入保密字(口令)并键入回车。此时,系统验证所键入的用户名和保密字,若正确则成功进入系统,显示命令提示符#,若不正确则显示“login incorrect”,并重新显示“login:”,让用户重新输入正确的用户名和保密字。 有时用户可能想修改保密字,则可以在成功进入系统后,在命令提示符后输入“password”并键入回车,则系统再显示“new password:”。当用户键入新保密字并键入回车后,系统再显示“retype new password:”,此时需再次重复键入刚才输入的新保密字并键入回车,则系统接收并记住新的保密字。 如果用户在登录时忘了保密字,则只能找系统管理员解决问题。或者,如果用户想修改自己的用户名,也只能找系统管理员解决。 (3)退出、注销 当用户不再使用Linux/UNIX时,在离开前,通常应键入logout命令或ctrk+D 开退出帐号。若是在PC上安装Linux/UNIX下,则此步骤可以省略而键入halt 或reboot命令。若是在多用户机器上(终端/网络登录),则此步骤最好不要略过,否则会导致计帐或安全上的问题。 (4)关机或重启 在Linux/UNIX下,涉及到关机或重启的命令有: a)键入halt命令。这是最常用的关机方式。 b)如果用户只是想退出Linux操作系统,并不想关机,还想再进入其他OS (例如Windows),则键入reboot命令(重启)。 c)在多用户机器上,系统管理员在关机(键入halt命令)前,通常要键入 shutdown命令。这是一条广播性质的命令,通知各用户即将关机,以便 给各用户留下一定的时间作保存、退出等工作。 d)在窗口工作方式下,可以通过与Windows类似的开始菜单来关机或重启: “开始”—“关闭系统”—“关机或重启”—……。 2.窗口工作方式与中断工作方式 《操作系统》实验报告 一实验目的: 1、加深对进程概念及进程管理各个部分内容的理解; 2、熟悉进程管理中主要数据结构的设计及进程调度算法,进程控制机构,同步机构,通信机构的实施。二实验内容 要求设置PCB,进程控制原语,进程调度算法,能描述进程调度中不同进程状态之间的转换,设计一个允许n个进程并发运行的进程管理模拟系统。该系统包括有简单的进程控制,同步及通信机构,其进程调度算法可任意选择。每个进程用一个PCB表示,其内容可根据具体情况设置。各进程之间应有一定的同步关系。系统在运行过程中能显示或打印各进程的状态及有关参数的变化情况,以便观察诸进程的运行过程及系统的管理过程。 三实验要求 实验报告要求1、写出进程管理的思想。2、画出算法流程图和设置的数据结构。 3、写出调试程序出现的问题及解决的方法。 4、打印实验报告及程序清单。 5、报告给出测试的结果。四实验环境: Windows8.0 开发语言c++ 五实验前的准备 1、阅读教材,了解有关PCB的知识。进程控制块的作用是使一个在多道程 序环境下不能独立运行的程序(含数据),成为一个能独立运行的基本 单位,一个能与其它进程并发执行的进程。或者说,OS是根据PCB来 对并发执行的进程进行控制和管理的。PCB通常是系统内存占用区中 的一个连续存区,它存放着操作系统用于描述进程情况及控制进程运行 所需的全部信息,它使一个在多道程序环境下不能独立运行的程序成为 一个能独立运行的基本单位,一个能与其他进程并发执行的进程。 2、上网查阅相关程序,学习与PCB相关知识与应用。 六实验原理及设计方案 1、实验原理; 假设系统有 5 个进程,每个进程用一个进程控制块 PCB 来代表。为每个进程任意确定一个要求运行时间和到达时间。按照进程到达的先后顺序排成一个循环队列。再设一个队首指针指向第一个到达进程的首址。执行处理机调度时,开始选择队首的第一个进程运行。另外,再设一个当前运行进程的指针,指向当前正在运行的进程。进程运行一次后,估计运行时间减一,输出当前运行进程的名字进程运行一次后,以后的调度则将当前指针依此下移一个位置,指向下一个进程,即调整当前运行指针指向该进程的链接指针所指进程,以指示应运行进程。同时还应判断该进程的剩余运行时间是否为零。若不为零,则等待下一轮的运行,若该进程的剩余运行时间为零,则将该进程的状态置为完成态 C,并退出循环队列。若就绪队列不空,则重复上述的(5)和(6)步骤直到所有的进程都运行完为止。在所设计的调度程序中,应包含显示或打印语句。显示或打印每次选中的进程的名称及运行一次后队列的变化情况。 2、设计方案 (1)设计一个有 N 个进程共行的进程调度程序。每个进程由一个进程控制块 PCB 表示。进程控制块包括以下信息:进程名,进程优先数,进程需要运行的时间,占用 CPU的时间以及进程的状态等。 (2)本调度程序用时间片轮转算法。 (3)编写程序并调试运行。 3、程序流程图 操作系统习题 1、设计操作系统的目标是什么?操作系统有什么作用? 1,操作系统的目标与应用环境有关,不同的阶段OS的目标不同,其主要目标是:方便性,有效性,可扩充性和开放性。 2,操作系统的作用可以从用户,资源管理,资源抽象角度分析:a,OS作为用户与计算机硬件系统之间的接口; b,OS作为计算机系统资源的管理者; c,OS实现了对计算机资源的抽象 2、为什么说操作系统实现了对计算机资源的抽象?请举例说明。OS首先在裸机上覆盖一层I/O设备管理软件,实现了对计算机硬件操作的第一层次抽象;在第一层软件上再覆盖文件管理软件,实现了对硬件资源操作的第二层次抽象。OS 通过在计算机硬件上安装多层系统软件,增强了系统功能,隐藏了对硬件操作的细节,由它们共同实现了对计算机资源的抽象。 3、解释多道程序设计的概念。并说明为什么多道批处理系统比单道批处理系统资源利用率高? 为了进一步的提高资源利用率和系统吞吐量,把一个以上的作业存放在内存中,并且同时处于运行状态,这些作业共享CPU和外设等其他资源(包括系统资源)对于一个单CPU系统来说,作业同时处于运行状态只是一种宏观上的概念,他们虽然都已经开始运行,但就微观而言,任意时刻,CPU上运行的作业只有一个4、引入进程,对操作系统产生哪些影响? 为了使程序在多道程序环境下能并发执行,并对并发执行的程序加以控制和描述,在操作系统中引入了进程概念。影响: 使程序的并发执行得以实行。 5、为什么说PCB是进程存在的唯一标志? PCB 是进程实体的一部分,是操作系统中最重要的记录型数据结构。作用是使一个在多道程序环境下不能独立运行的程序,成为一个能独立运行的基本单位,成为能与其它进程并发执行的进程。OS是根据PCB对并发执行的进程进行控制和管理的。 ucos-ii操作系统复习大纲 一.填空题 1.uC/OS-II是一个简洁、易用的基于优先级的嵌入式【抢占式】多任务实时内核。 2.任务是一个无返回的无穷循环。uc/os-ii总是运行进入就绪状态的【最高优先级】的任务。 3.因为uc/os-ii总是运行进入就绪状态的最高优先级的任务。所以,确定哪 个任务优先级最高,下面该哪个任务运行,这个工作就是由【调度器(scheduler)】来完成的。 4.【任务级】的调度是由函数OSSched()完成的,而【中断级】的调度 是由函数OSIntExt() 完成。对于OSSched(),它内部调用的是【OS_TASK_SW()】完成实际的调度;OSIntExt()内部调用的是【 OSCtxSw() 】实现调度。 5.任务切换其实很简单,由如下2步完成: (1)将被挂起任务的处理器寄存器推入自己的【任务堆栈】。 (2)然后将进入就绪状态的最高优先级的任务的寄存器值从堆栈中恢复到【寄存器】中。 6.任务的5种状态。 【睡眠态(task dormat) 】:任务驻留于程序空间(rom或ram)中,暂时没交给ucos-ii处理。 【就绪态(task ready)】:任务一旦建立,这个任务就进入了就绪态。 【运行态(task running)】:调用OSStart()可以启动多任务。OSStart()函数只能调用一次,一旦调用,系统将运行进入就绪态并且优先级最高的任务。 【等待状态(task waiting)】:正在运行的任务,通过延迟函数或pend(挂起)相关函数后,将进入等待状态。 【中断状态(ISR running)】:正在运行的任务是可以被中断的,除非该任务将中断关闭或者ucos-ii将中断关闭。 7.【不可剥夺型】内核要求每个任务自我放弃CPU的所有权。不可剥夺型调度法也称作合作型多任务,各个任务彼此合作共享一个CPU。 8.当系统响应时间很重要时,要使用【可剥夺型】内核。最高优先级的任务一旦就绪,总能得到CPU的控制权。 9.使用可剥夺型内核时,应用程序不应直接使用不可重入型函数。调用不可重入型函数时,要满足互斥条件,这一点可以用【互斥型信号量】来实现。 10.【可重入型】函数可以被一个以上的任务调用,而不必担心数据的破坏。 11.可重入型函数任何时候都可以被中断,一段时间以后又可以运行,而相应数据不会丢失。可重入型函数或者只使用【局部变量】,即变量保存在CPU寄存器中或堆栈中。如果使用全局变量,则要对全局变量予以【保护】。 12.每个任务都有其优先级。任务越重要,赋予的优先级应【越高】。 13.μC/OS-Ⅱ初始化是通过调用系统函数【OSIint()】实现的,完成μC/OS-Ⅱ所有的变量和数据结构的初始化。 14.多任务的启动是用户通过调用【OSStart()】实现的。然而,启动μC/OS-Ⅱ之前,用户至少要建立一个应用【任务】。 15. μC/OS-Ⅱ的参数配置文件名为【】。 16.删除任务,是说任务将返回并处于【休眠状态】,并不是说任务的代码被删除了,只是任务的代码不再被μC/OS-Ⅱ调用。 17.μC/OS-Ⅱ要求用户提供【定时中断】来实现延时与超时控制等功能。 18.定时中断也叫做【时钟节拍】,它应该每秒发生10至100次。 19. 时钟节拍的实际频率是由用户的应用程序决定的。时钟节拍的频率越高,系统的负荷就【越重】。 20.μC/OS-II中的信号量由两部分组成:一个是信号量的【计数值】,它是一个16位的无符号整数(0 到65,535之间);另一个是由等待该信号量的任务组成的【等待任务表】。用户要在中将OS_SEM_EN开关量常数置成【1 】,这样μC/OS-II 才能支持信号量。 21. μC/OS-II中表示当前已经创建的任务数全局变量名为:【 OSTaskCtr 】。操作系统实验题目2
西北工业大学操作系统实验_OS3(10)
操作系统的五大功能是什么
简述操作系统的功能
操作系统实验指导书
操作系统实验2
OS实验六
操作系统实验二
操作系统的概念和功能
操作系统原理重点知识点
uCOS-II任务堆栈检验(OSTaskStkChk())
操作系统实验指导08
操作系统实验2
(完整版)操作系统习题
ucos-ii操作系统复习大纲