当前位置:文档之家› 操作系统试验讲解

操作系统试验讲解

操作系统试验讲解
操作系统试验讲解

实验 1 进程控制

实验内容:

在windows 系统下通过有关进程的系统调用,实现进程的简单操作,并观察程序的运行情况,通过阅读和分析实验程序,分析执行结果。这些加深对进程概念的理解,明确进程与程序之间的区别。

实验目的:

通过创建进程、观察正在运行的进程和终止进程的程序设计和调试操作,进一步熟悉操作系统的进程概念,理解Windows 进程的“一生”,并了解学习创建进程、观察进程和终止进程的程序设计方法。

实验要求:

⑴理解系统调用CreateProcess的功能。

(2)编译并运行给出的程序,独立观察和分析程序执行的结果,给出需要回答的问题。

(3)有多余时间则编写程序,实现输入任意执行文件并启动和选择结束进程功能的程序。

实验内容:

1.创建进程本实验显示了创建子进程的基本框架。程序只是再一次地启动自身,并显示它的系统进程ID 和它在进程列表中的位置。

步骤1:编译并执行1-1.exe程序,完成下列问题。

程序1-1是一个简单的使用CreateProcess() AP函数的例子。首先形成简单的命令行,提供当前的EXE 文件的指定文件名和代表生成克隆进程的号码。大多数参数都可取缺省值,但是创建标志参数使用了:CREATE_NEW_CONSOLE 标志,指示新进程分配它自己的控制台,使得运行示例程序时,在任务栏上产生main() 许多活动标记。然后该克隆进程的创建方法关闭传递过来的句柄并返回以便让用户看到其中每一进程的执行主线程暂停一下,函数。在关闭程序之前,的至少一个窗口。程序运行时屏幕显示的信息是:Process ID:2540, Clone ID:0 程序运行时屏幕显示的请自己设置一个,如果将创建标志参数该为其它,

信息是:Process ID:2540, Clone ID:0 如果设置创建参数改为:NULL 。则表示程序在一个控制台上显示。程序运行时屏幕最初显示的信息是:Process ID:244, Clone ID:0,随后在该控制台上显示程序运行的结果。

2.正在运行的进程本实验的程序中列出了用于进程信息查询的API 函数GetProcessVersion() 与GetVersionEx() 的共同作用,可确定运行进程的操作系统的版本号。

步骤2:编译并执行1-2.exe 程序,完成下列问题。

执行1-2.exe 程序的运行结果:当前PID 信息:2064 当前操作系统版本: 5.1 系统提示信息:Task Manager should now indicate thin process is high priorty. 清

单1-2中的程序表明如何获得当前的PID 和所需的进程版本信息。接着,程序演示了如何使用GetVersionEx() API 函数来提取OSVERSIONINFOEX 结构。这一数据块中包括了操作系统的版本信息。其中,“OS : 5.1”表示当前运行的操作系统是:Windows XP

清单1-2的最后一段程序利用了操作系统的版本信息,以确认运行的是Windows。代码接着将当前进程的优先级提高到比正常级别高。

步骤3:单击Ctrl + Alt + Del键,进入“Windows任务管理器”,在“应用程序” 选项卡中右键单击“ 1-2”任务,在快捷菜单中选择“转到进程”命令。

在“Win dows任务管理器”的“进程”选项卡中,与“2-2 ”任务对应的进程映

像名称是(为什么?) :与“ 1-2”任务对应的进程映像名称是”在该程序下运行。1-2,因为“ VCSPAWN.EXE 右键单击该进程名,在快捷菜单中选择“设置优先级”命令,可以调整该进程的优先级,如设置为“高”后重新运行1-2.exe程序,屏幕显示有变化吗?为什么?屏幕显示没有变化。已经是高的优先级了。

3.终止进程

在清单1-3列出的程序中,先创建一个子进程,然后指令它发出“自杀弹”互斥体去终止自身的运行。

清单1-3中的程序说明了一个进程从“生”到“死”的整个一生。第一次执行时,

它创建一个子进程。在创建子进程之前,先创建一个互斥的内核对象,以便父子

进程间进行协调。当创建子进程时,就打开了互斥体并在其他线程中进行别的处理工作,同时等待着父进程使用ReleaseMutex() 发出信号。然后用Sleep() 来模拟父进程处理其他工作,等完成时,指令子进程终止。进程可使用退出代码将终止方式通知给调用GetExitCodeProcess() 的其他进程。同时,GetProcessTimes(函数可向主调者显示进程的终止时间。

步骤4:编译并执行1-3.exe程序,其运行结果:

1)Creating the child process. 表示:正在创建一个子进程。

2)Telling the child process to quit. 表示:指令子进程终止。

步骤5:在熟悉清单1-3源代码的基础上,利用本实验介绍的API 函数来尝试改进本程序(例如使用GetProcessTimes(函数)并运行。请描述你所做的工作:程序1-

1.cpp

// proc create 项目#include

#include

#include

#include // 创建传递过来的进程的克隆过程并赋于其ID 值

void StartClone(int nCloneID)

{

// 提取用于当前可执行文件的文件名

TCHAR szFilename[MAX_PATH] ;

GetModuleFileName(NULL, szFilename, MAX_PATH) ;

// 格式化用于子进程的命令行并通知其EXE 文件名和克隆ID

TCHAR szCmdLine[MAX_PATH]; sprintf(szCmdLine,\\%s\ d%,szFilename,nCloneID);

// 用于子进程的STARTUPINFO 结构

STARTUPINFO si;

ZeroMemory(reinterpret_cast (&si) , sizeof(si) ) ;

si.cb = sizeof(si) ; // 必须是本结构的大小

// 返回的用于子进程的进程信息

PROCESS_INFORMATION pi;

// 利用同样的可执行文件和命令行创建进程,并赋于其子进程的性质BOOL

bCreateOK=CreateProcess(

szFilename, // 产生这个EXE 的应用程序的名称

szCmdLine, // 告诉其行为像一个子进程的标志

NULL, // 缺省的进程安全性

NULL, // 缺省的线程安全性

FALSE, // 不继承句柄

NULL,

//CREATE_NEW_CONSOLE, // 使用新的控制台标志参数

NULL, // 新的环境lpEnvironment 参数,指明为新进程提供的环境

NULL,//当前目录IpCurrentDirectory,可用于向主创进程发送与缺省

目录不同的新进程使用的特殊的当前目录

&si, // 启动信息STARTUPINFO 数据结构所必需的, 用于在必要时指明新应用程序的主窗口的外观。

&pi) ; // 返回的进程信息用于新进程对象及其主线程的句柄和ID 的返回值缓冲区。

// 对子进程释放引用

if (bCreateOK)

{

CIoseHandIe(pi.hProcess) ;

CloseHandle(pi.hThread) ;

int main(int argc, char* argv[] )

{

// 确定进程在列表中的位置

int nClone(0) ;

if (argc > 1) {

sscanf(argv[1] , %d , &nClone) ;// 从第二个参数中提取克隆ID } // 显示进程位置

cout << Process ID: << GetCurrentProcessId()

<< , Clone ID: << nClone<< endl;

//Sleep(500) ; Sleep(4000);

// 检查是否有创建子进程的需要const int c_nCloneMax=25; if (nClone < c_nCloneMax) {

StartClone(nClone) ;// 发送新进程的命令行和克隆号}

// 在终止之前暂停一下(l/2 秒)

//Sleep(200) ; Sleep(4000);

return 0;

}

程序1-2.cpp

// version 项目

#include

#include

#include

// 利用进程和操作系统的版本信息的简单示例void main()

{

// 提取这个进程的ID

DWORD dwIdThis=GetCurrentProcessId();

// 获得这一进程和报告所需的版本,也可以发送0 以便指明这一进程DWORD dwVerReq= GetProcessVersion(dwIdThis);

WORD wMajorReq=(WORD)(dwVerReq>16) ;

WORD wMinorReq=(WORD)(dwVerReq & 0xffff) ;

cout << Process ID: << dwIdThis

<<, requires OS: << wMajorReq <<

<< wMinorReq << endl ;

// 设置版本信息的数据结构,以便保存操作系统的版本信息OSVERSIONINFOEX osvix;

ZeroMemory(&osvix, sizeof(osvix) ) ;

osvix.dwOSVersionInfoSize=sizeof(osvix) ;

// 提取版本信息和报告

GetVersionEx(reinterpret_cast < LPOSVERSIONINFO > (&osvix)) ; cout << Running on OS: << osvix.dwMajorVersion <<.

<< osvix.dwMinorVersion << endl;

// 如果是NTS(Windows) 系统,则提高其优先权

if (osvix.dwPlatformId==VER_PLATFORM_WIN32_NT &&

osvix.dwMajorVersion >= 5)

{

改变优先级//

SetPriorityClass(

号进程的ID GetCurrentProcess() , //

high 改变为HIGH_PRIORITY_CLASS); //

// 报告给用户

cout << Task Manager should now indicate this process is high

priority.<< endl;

} getchar();

}

程序1-3.cpp

// procterm 项目

# include

# include

# include

#include

static LPCTSTR g_szMutexName = w2kdg.ProcTerm.mutex.Suicide ;

// 创建当前进程的克隆进程的简单方法

void StartClone()

{

// 提取当前可执行文件的文件名

TCHAR szFilename[MAX_PATH] ;

GetModuleFileName(NULL, szFilename, MAX_PATH) ;

// 格式化用于子进程的命令行,指明它是一个EXE 文件和子进程

TCHAR szCmdLine[MAX_PATH] ;

sprintf(szCmdLine, \\%s\child , szFilename) ;

// 子进程的启动信息结构

STARTUPINFO si;

ZeroMemory(reinterpret_cast (&si),sizeof(si)) ;

si.cb = sizeof(si) ; // 应当是此结构的大小

// 返回的用于子进程的进程信息

PROCESS_INFORMATION pi;

// 用同样的可执行文件名和命令行创建进程,并指明它是一个子进程

BOOL bCreateOK=CreateProcess( szFilename, // 产生的应用程序的名称(本EXE 文件) szCmdLine, // 告诉我们这是一个子进程的标志NULL, // 用于进程的

缺省的安全性NULL, // 用于线程的缺省安全性

嵌入式操作系统实验报告

中南大学信息科学与工程学院实验报告 姓名:安磊 班级:计科0901 学号: 0909090310

指导老师:宋虹

目录 课程设计内容 ----------------------------------- 3 uC/OS操作系统简介 ------------------------------------ 3 uC/OS操作系统的组成 ------------------------------ 3 uC/OS操作系统功能作用 ---------------------------- 4 uC/OS文件系统的建立 ---------------------------- 6 文件系统设计的原则 ------------------------------6 文件系统的层次结构和功能模块 ---------------------6 文件系统的详细设计 -------------------------------- 8 文件系统核心代码 --------------------------------- 9 课程设计感想 ------------------------------------- 11 附录-------------------------------------------------- 12

课程设计内容 在uC/OS操作系统中增加一个简单的文件系统。 要求如下: (1)熟悉并分析uc/os操作系统 (2)设计并实现一个简单的文件系统 (3)可以是存放在内存的虚拟文件系统,也可以是存放在磁盘的实际文件系统 (4)编写测试代码,测试对文件的相关操作:建立,读写等 课程设计目的 操作系统课程主要讲述的内容是多道操作系统的原理与技术,与其它计算机原理、编译原理、汇编语言、计算机网络、程序设计等专业课程关系十分密切。 本课程设计的目的综合应用学生所学知识,建立系统和完整的计算机系统概念,理解和巩固操作系统基本理论、原理和方法,掌握操作系统开发的基本技能。 I.uC/OS操作系统简介 μC/OS-II是一种可移植的,可植入ROM的,可裁剪的,抢占式的,实时多任务操作系统内核。它被广泛应用于微处理器、微控制器和数字信号处理器。 μC/OS 和μC/OS-II 是专门为计算机的嵌入式应用设计的,绝大部分代码是用C语言编写的。CPU 硬件相关部分是用汇编语言编写的、总量约200行的汇编语言部分被压缩到最低限度,为的是便于移植到任何一种其它的CPU 上。用户只要有标准的ANSI 的C交叉编译器,有汇编器、连接器等软件工具,就可以将μC/OS-II嵌入到开发的产品中。μC/OS-II 具有执行效率高、占用空间小、实时性能优良和可扩展性强等特点,最小内核可编译至2KB 。μC/OS-II 已经移植到了几乎所有知名的CPU 上。 严格地说uC/OS-II只是一个实时操作系统内核,它仅仅包含了任务调度,任务管理,时间管理,内存管理和任务间的通信和同步等基本功能。没有提供输入输出管理,文件系统,网络等额外的服务。但由于uC/OS-II良好的可扩展性和源码开放,这些非必须的功能完全 可以由用户自己根据需要分别实现。 uC/OS-II目标是实现一个基于优先级调度的抢占式的实时内核,并在这个内核之上提供最基本的系统服务,如信号量,邮箱,消息队列,内存管理,中断管理等。 uC/OS操作系统的组成 μC/OS-II可以大致分成核心、任务处理、时间处理、任务同步与通信,CPU的移植等5个部分。如下图:

操作系统例题讲解

操作系统例题讲解 一、调度算法 对如下表所示的5个进程: 采用可剥夺的静态最高优先数算法进行调度(不考虑系统开销)。 问 题: ⑴ 画出对上述5个进程调度结果的Gantt 图; ⑵ 计算5个进程的平均周转时间、平均带权周转时间。 解: ⑴ 调度结果的Gantt 图如下: 0 2 4 5 7 9 10 12 14 (2) 时间计算: 二、存储管理 某系统采用虚拟页式存储管理方式,页面大小为2KB ,每个进程分配的页框数固定为4页。采用局部置换策略,置换算法采用改进的时钟算法,当有页面新装入内存时,页表的时钟指针指向新装入页面的下一个在内存的表项。设当前进程P 的页表如下(“时钟”指针指向逻辑页面3的表项): 逻辑页号 0 1 2 3 4 5 问 题: ⑴ 当进程P 依次对逻辑地址执行下述操作: ① 引用 4C7H ; ② 修改 19B4H ; ③ 修改 0C9AH ; 写出进程P 的页表内容; ⑵ 在 ⑴ 的基础上,当P 对逻辑地址27A8H 进行访问, 该逻辑地址对应的物理地址是多少?

解:页面大小为2KB,2KB=2×210=211, 即逻辑地址和物理地址的地址编码的低11位为页内偏移; ⑴①逻辑地址4C7H=0100 1100 0111B,高于11位为0,所以该地址访问逻辑页面0; 引用4C7H,页表表项0:r=1; ②逻辑地址19B4H=0001 1001 1011 0100B,高于11位为3,所以该地址访问逻辑页面3; 修改19B4H,页表表项3:r=1, m=1; ③逻辑地址0C9AH=0000 1100 1001 1010B,高于11位为1,所以该地址访问逻辑页面1; 逻辑页1不在内存,发生缺页中断; ①、②两操作后,P的页表如下: 逻辑页号 1 2 3 4 5 按改进的时钟算法,且时钟指针指向表项3,应淘汰0页面, 即把P的逻辑页面1读到内存页框101H,页表时钟指针指向表项2。 并执行操作:修改0C9AH。 经上述3个操作后,P的页表如下: 逻辑页号 1 2 3 4 5 ⑵逻辑地址27A8H=0010 0111 1010 1000B,高于11位为4,所以该地址访问逻辑页面4; 页面4不在内存,发生缺页中断;按改进的时钟算法,淘汰页面2,页面4读到110H页框, 所以,逻辑地址27A8H对应的物理地址为: 0001 0001 0000 111 1010 1000B=887A8H。 三、设备与I/O管理 设系统磁盘只有一个移动磁头,磁道由外向内编号为:0、1、2、……、199;磁头移动一个磁道所需时间为1毫秒;每个磁道有32 个扇区;磁盘转速R=7500r/min. 系统对磁盘设备的I/O请求采用N-Step Look (即N-Step Scan,但不必移动到磁道尽头),N=5。设当前磁头在60号磁道,向内移动;每个I/O请求访问磁道上的1个扇区。现系统依次接收到对磁道的I/O请求序列如下: 50, 20, 60, 30, 75, 30, 10, 65, 20, 80,15, 70 问题: ⑴写出对上述I/O请求序列的调度序列,并计算磁头引臂的移动量; ⑵计算:总寻道时间(启动时间忽略)、总旋转延迟时间、总传输时间和总访问处理时间。 解:⑴考虑序列中有重复磁道的I/O请求,调度序列为: 60→75→50→30→20→15→10→65→70→80 磁头移动量=(75-60)+(75-50)+(50-30)+(30-20)+ (20-15)+(15-10)+(65-10)+(70-65)+(80-70) =15+25+20+10+5+5+55+5+10=155(磁道)

操作系统教程第5版课后解析

操作系统教程第5版课后答案 费祥林、骆斌编著 第一章操作系统概论 习题一 一、思考题 1.简述现代计算机系统的组成及层次结构。 答:现代计算机系统由硬件和软件两个部分组成。是硬件和软件相互交织形成的集合体,构成一个解决计算问题的工具。硬件层提供基本可计算的资源,包括处理器、寄存器、内存、外存及I/O设备。软件层由包括系统软件、支撑软件和应用软件。其中系统软件是最靠近硬件的。 2、计算机系统的资源可分成哪几类?试举例说明。 答:包括两大类,硬件资源和信息资源。硬件资源分为处理器、I/O设备、存储器等;信息资源分为程序和数据等。 3.什么是操作系统?操作系统在计算机系统中的主要作用是什么? 答:操作系统是一组控制和管理计算机硬件和软件资源,合理地对各类作业进行调度,以及方便用户使用的程序的集合。 操作系统在计算机系统中主要起4个方面的作用。 (1)服务用户观点——操作系统提供用户接口和公共服务程序 (2)进程交互观点——操作系统是进程执行的控制者和协调者 (3)系统实现观点——操作系统作为扩展机或虚拟机 (4)资源管理观点——操作系统作为资源的管理者和控制者 4.操作系统如何实现计算与操作过程的自动化? 答:大致可以把操作系统分为以下几类:批处理操作系统、分时操作系统、实时操作系统、网络操作系统和分布式操作系统。其中批处理操作系统能按照用户预先规定好的步骤控制作业的执行,实现计算机操作的自动化。又可分为批处理单道系统和批处理多道系统。单道系统每次只有一个作业装入计算机系统的主存储器运行,多个作业可自动、顺序地被装入运行。批处理多道系统则允许多个作业同时装入主存储器,中央处理器轮流地执行各个作业,各个作业可以同时使用各自所需的外围设备,这样可以充分利用计算机系统的资源,缩短作业时间,提高系统的吞吐率 5.操作系统要为用户提供哪些基本的和共性的服务? 答:(1)创建程序和执行程序;(2)数据I/O和信息存取;(3)通信服务;(4)差错检测和处理。为了保证高效率、高质量的工作,使得多个应用程序能够有效的共享系统资源,提高系统效率,操作系统还具备一些其他的功能:资源分配,统计,保护等。 6.试述操作系统所提供的各种用户接口。 答:操作系统通过程序接口和操作接口将其服务和功能提供给用户。程序接口由一组系统调用组成,在应用程序中使用“系统调用”可获得操作系统的低层服务,访问或使用系统管理的各种软硬件资源,是操作系统对外提供服务和功能的手段;操作接口由一组命令和(或)作业控制语言组成,是操作系统为用户提

实时操作系统报告

实时操作系统课程实验报告 专业:通信1001 学号:3100601025 姓名:陈治州 完成时间:2013年6月11日

实验简易电饭煲的模拟 一.实验目的: 掌握在基于嵌入式实时操作系统μC/OS-II的应用中,基于多任务的模式的编程方法。锻炼综合应用多任务机制,任务间的通信机制,内存管理等的能力。 二.实验要求: 1.按“S”开机,系统进入待机状态,时间区域显示当前北京时间,默认模式“煮饭”; 2.按“C”选择模式,即在“煮饭”、“煮粥”和“煮面”模式中循环选择; 3.按“B”开始执行模式命令,“开始”状态选中,时间区域开始倒计时,倒计时完成后进入“保温”状态,同时该状态显示选中,时间区域显示保温时间; 4.按“Q”取消当前工作状态,系统进入待机状态,时间区域显示北京时间,模式为当前模式; 5.按“X”退出系统,时间区域不显示。 6.煮饭时长为30,煮粥时长为50,煮面时长为40. 三.实验设计: 1.设计思路: 以老师所给的五个程序为基础,看懂每个实验之后,对borlandc的操作有了大概的认识,重点以第五个实验Task_EX为框架,利用其中界面显示与按键扫描以及做出相应的响应,对应实现此次实验所需要的功能。 本次实验分为界面显示、按键查询与响应、切换功能、时钟显示与倒计时模块,综合在一起实验所需功能。 2.模块划分图: (1)界面显示: Main() Taskstart() Taskstartdispinit() 在TaskStartDispInit()函数中,使用PC_DispStr()函数画出界面。

(2)按键查询与响应: Main() Taskstart() 在TaskStart()函数中,用if (PC_GetKey(&key) == TRUE)判断是否有按键输入。然后根据key 的值,判断输入的按键是哪一个;在响应中用switch语句来执行对应按键的响应。 (3)切换功能: l计数“C”按 键的次数 M=l%3 Switch(m) M=0,1,2对应于煮饭,煮粥,煮面,然后使用PC_DispStr()函数在选择的选项前画上“@”指示,同时,在其余两项钱画上“”以“擦出”之前画下的“@”,注意l自增。 四.主要代码: #include "stdio.h" #include "includes.h" #include "time.h" #include "dos.h" #include "sys/types.h" #include "stdlib.h" #define TASK_STK_SIZE 512 #define N_TASKS 2 OS_STK TaskStk[N_TASKS][TASK_STK_SIZE]; OS_STK TaskStartStk[TASK_STK_SIZE]; INT8U TaskData[N_TASKS];

操作系统原理-进程调度实验报告

一、实验目的 通过对进程调度算法的设计,深入理解进程调度的原理。 进程是程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。 进程调度分配处理机,是控制协调进程对CPU的竞争,即按一定的调度算法从就绪队列中选中一个进程,把CPU的使用权交给被选中的进程。 进程通过定义一个进程控制块的数据结构(PCB)来表示;每个进程需要赋予进程ID、进程到达时间、进程需要运行的总时间的属性;在RR中,以1为时间片单位;运行时,输入若干个进程序列,按照时间片输出其执行序列。 二、实验环境 VC++6.0 三、实验内容 实现短进程优先调度算法(SPF)和时间片轮转调度算法(RR) [提示]: (1) 先来先服务(FCFS)调度算法 原理:每次调度是从就绪队列中,选择一个最先进入就绪队列的进程,把处理器分配给该进程,使之得到执行。该进程一旦占有了处理器,它就一直运行下去,直到该进程完成或因发生事件而阻塞,才退出处理器。 将用户作业和就绪进程按提交顺序或变为就绪状态的先后排成队列,并按照先来先服务的方式进行调度处理,是一种最普遍和最简单的方法。它优先考虑在系统中等待时间最长的作业,而不管要求运行时间的长短。 按照就绪进程进入就绪队列的先后次序进行调度,简单易实现,利于长进程,CPU繁忙型作业,不利于短进程,排队时间相对过长。 (2) 时间片轮转调度算法RR

原理:时间片轮转法主要用于进程调度。采用此算法的系统,其程序就绪队列往往按进程到达的时间来排序。进程调度按一定时间片(q)轮番运行各个进程. 进程按到达时间在就绪队列中排队,调度程序每次把CPU分配给就绪队列首进程使用一个时间片,运行完一个时间片释放CPU,排到就绪队列末尾参加下一轮调度,CPU分配给就绪队列的首进程。 固定时间片轮转法: 1 所有就绪进程按 FCFS 规则排队。 2 处理机总是分配给就绪队列的队首进程。 3 如果运行的进程用完时间片,则系统就把该进程送回就绪队列的队尾,重新排队。 4 因等待某事件而阻塞的进程送到阻塞队列。 5 系统把被唤醒的进程送到就绪队列的队尾。 可变时间片轮转法: 1 进程状态的转换方法同固定时间片轮转法。 2 响应时间固定,时间片的长短依据进程数量的多少由T = N × ( q + t )给出的关系调整。 3 根据进程优先级的高低进一步调整时间片,优先级越高的进程,分配的时间片越长。 多就绪队列轮转法: (3) 算法类型 (4)模拟程序可由两部分组成,先来先服务(FCFS)调度算法,时间片轮转。流程图如下:

操作系统练习题_及答案解析

操作系统练习题 第一章引言 (一单项选择题 1操作系统是计算机系统的一种( 。A.应用软件 B.系统软件c.通用软件D.工具软件 2.操作系统目的是提供一个供其他程序执行的良好环境,因此它必须使计算机( A.使用方便 B.高效工作 C.合理使用资源 D.使用方便并高效工作 3.允许多个用户以交互方式使用计算机的操作系统是( 。A.分时操作系统 B.批处理单道系统 C.实时操作系统 D.批处理多道系统 4.下列系统中( 是实时系统。A.计算机激光照排系统 B.办公自动化系统 C.化学反应堆控制系统 D.计算机辅助设计系统 5.操作系统是一种系统软件,它( 。A.控制程序的执行 B.管理计算机系统的资源 C.方便用户使用计算机 D.管理计算机系统的资源和控制程序的执行 6.计算机系统把进行( 和控制程序执行的功能集中组成一种软件,称为操作系统 A.CPU管理 B.作业管理 C.资源管理 D.设备管理 7.批处理操作系统提高了计算机系统的工作效率,但( 。 A.不能自动选择作业执行 B.无法协调资源分配 c.不能缩短作业执行时间 D在作业执行时用户不能直接干预 8.分时操作系统适用于( 。A.控制生产流水线B.调试运行程序c.大量的数据处理D.多个计算机资源共享 9.在混合型操作系统中,“前台”作业往往是指( 。A.由批量单道系统控制的作业 B.由批量多道系统控制的作业 c.由分时系统控制的作业D.由实时系统控制的作业

10.在批处理兼分时的系统中,对( 应该及时响应,使用户满意。A.批量作业B.前台作业c.后台作业D.网络通信 11.实时操作系统对可靠性和安全性要求极高,它( 。A.十分注重系统资源的利用率B.不强调响应速度 c.不强求系统资源的利用率 D.不必向用户反馈信息 12.分布式操作系统与网络操作系统本质上的不同之处在于( 。A.实现各台计算机之间的通信B.共享网络个的资源 c.满足较大规模的应用 D.系统中若干台计算机相互协作完成同一任务 13.SPOOL技术用于( 。A.存储管理B.设备管理C.文件管理 D.作业管理 14.( 为用户分配主存空间,保护主存中的程序和数据不被破坏,提高主存空间的利用率。 A处理器管理 B.存储管理 c.文件管理 D.作业管理 (二填空题 1. 计算机系统是按用户要求接收和存储信息,自动进行_______并输出结果信息的系统。 2.计算机是由硬件系统和_______系统组成。 3.软件系统由各种_______和数据组成。 4.计算机系统把进行_______和控制程序执行的功能集中组成一种软件称为操作系统。 5.操作系统使用户合理_______,防止各用户间相互干扰。 6.使计算机系统使用方便和_______是操作系统的两个主要设计目标。 7.批处理操作系统、_______和实时操作系统是基本的操作系统。 8.用户要求计算机系统中进行处理的一个计算机问题称为_______。

操作系统原理实验-系统内存使用统计5

上海电力学院 计算机操作系统原理 实验报告 题目:动态链接库的建立与调用 院系:计算机科学与技术学院 专业年级:信息安全2010级 学生姓名:李鑫学号:20103277 同组姓名:无 2012年11 月28 日上海电力学院

实验报告 课程名称计算机操作系统原理实验项目线程的同步 姓名李鑫学号20103277 班级2010251班专业信息安全 同组人姓名无指导教师姓名徐曼实验日期2012/11/28 实验目的和要求: (l)了解Windows内存管理机制,理解页式存储管理技术。 (2)熟悉Windows内存管理基本数据结构。 (3)掌握Windows内存管理基本API的使用。 实验原理与内容 使用Windows系统提供的函数和数据结构显示系统存储空间的使用情况,当内存和虚拟存储空间变化时,观察系统显示变化情况。 实验平台与要求 能正确使用系统函数GlobalMemoryStatus()和数据结构MEMORYSTATUS了解系统内存和虚拟空间使用情况,会使用VirtualAlloc()函数和VirtualFree()函数分配和释放虚拟存储空间。 操作系统:Windows 2000或Windows XP 实验平台:Visual Studio C++ 6.0 实验步骤与记录 1、启动安装好的Visual C++ 6.0。 2、选择File->New,新建Win32 Console Application程序, 由于内存分配、释放及系统存储 空间使用情况均是Microsoft Windows操作系统的系统调用,因此选择An application that support MFC。单击确定按钮,完成本次创建。 3、创建一个支持MFC的工程,单击完成。

操作系统习题讲解Word版

操作系统习题讲解 一、单项选择题 1、关于操作系统的叙述,是不正确 ...的。 A、管理资源的程序 B、能使系统资源提高效率的程序 C、管理用户程序执行的程序 D、能方便用户编程的程序 2、不是分时系统的基本特征。 A、及时性 B、实时性 C、交互性 D、独立性 3、如果允许不同用户的文件可以具有相同的文件名,通常采用来保证按名存取的安全性。 A、建立索引表 B、多级目录结构 C、重名翻译机构 D、建立指针 4、设计批处理多道系统时,首先要考虑的是。 A、交互性和响应时间 B、系统效率和吞吐量 C、灵活性和可适应性 D、实时性和可靠性 5、对于辅助存储器,的说法是正确的。 A、可被中央处理器直接访问 B、能永久地保存信息,是文件的主要存储介质 C、是CPU与主存之间的缓冲存储器 D、不是一种永久性的存储设备 6、中文Windows系统本身不提供的输入法。 A、全拼 B、双拼 C、微软 D、五笔字型 7、Windows XP不支持文件系统。 A、FAT32 B、NTFS C、ext2 D、FAT 按硬件结构来划分操作系统,可分为。 A、单用户操作系统、多用户操作系统 B、批处理操作系统、分时操作系统和实时操作系统 C、分时操作系统、分布式操作系统和多媒体操作系统 D、网络操作系统、分布式操作系统和多媒体操作系统 9、清理磁盘不能 ..对进行整理。 A、硬盘 B、软盘 C、光盘 D、以上三种 10、菜单命令后的“…”表示。 A、暂时不能用的菜单 B、选择该项后会出现子菜单 C、选择该项后会出现一个对话框 D、该项已经被选中 11、应用程序窗口不包含部分。 A、标题栏 B、选项卡 C、工具栏 D、最小化、最大化/恢复按钮、关闭按钮 12、对话框与其它窗口相比有什么区别。 A、没有菜单栏 B、对话框可以移动,不能改变窗口的大小。 C、没有工具栏 D、对话框不可以移动,不能改变窗口的大小。 13、下面有关计算机操作系统的叙述中,______是不正确 ...的。 A、UNIX、Windows 2000属于操作系统 B、操作系统只管理内存,而不管理外存 C、操作系统属于系统软件 D、计算机的内存、I/O设备等硬件资源也由操作系统管理。

操作系统第一章作业讲解

第一章 习题 1、有3个作业A 、B 、C , A 是计算作业、 B 是检索磁带上数据的作业, C 是打印作业。3个作业单道运行时间分别为5分钟、15分钟和10分钟。假设可在15分钟内并行完成这3个作业。则各资源的利用率分别为多少? 单道CPU 利用率:5 /(5+15+10)= 5 / 30 = 1 / 6 磁带利用率:15 /(5+15+10)= 15 / 30 = 1 / 2 打印利用率:10 /(5+15+10)= 10 / 30 = 1 / 3 多道CPU 利用率:5 / 15 = 1 / 3 磁带利用率:15 / 15 = 1 打印利用率:10 / 15 = 2 / 3 2、在有一台CPU 和两台输入/输出设备磁盘和磁带的多道程序系统中,同时投入运行2个程序A 和B 。这2个程序对CPU 和磁盘和磁带的使用顺序和使用时间为: 程序A :磁带(30S )、CPU (10S )、磁盘(30S )、CPU (10S )、磁带(20S ) 程序B :磁盘(20S )、CPU (30S )、磁带(40S ) 假定:CPU 、磁盘和磁带都能并行工作,试问:在单道和多道两种方式下, 1)程序A 和B 从投入运行到运行完成所用的时间分别是多少? 2)CPU 、磁盘和磁带的利用率是多少? 答:在单道情况下,从投入到运行完成所用的时间A 为:100S ;B 为100S+90S=190S 在两道情况下,从投入到运行完成所用的时间A 为:120S ;B 为90S (非抢占式) 在两道情况下,从投入到运行完成所用的时间A 为:100S ;B 为120S (抢占式) 单道运行的时间关系图 计算 磁带 多道、非抢占式运行的时间关系图

嵌入式实时操作系统vxworks实验教程[1]

???VxWorks 偠 ? Laboratory Tutorial for Embedded Real ˉtime Operating System VxWorks ?? ? ? ? ? ? ? 2003 10

???VxWorks 偠 ? ? 1 ???? (1) 1.1 ?? (1) 1.2 ??? (7) 2 ? MPC860 (16) 3 ???VxWorks ? ? Tornado (25) 3.1 ???VxWorks (25) 3.2 Tornado? ? (43) 4 VxWorks?BootRom (48) 5 偠 (55) 5.1 偠??Tornado??? (55) 5.2 偠?? ??? ? ? (74) 5.3 偠?? ? ? ?? (78) 5.4 偠 ?? ??? (101) 5.5 偠?? ?????? ?? (110) 5.6 偠 ? ?????? ?? (116) ? A hwa-xpc860 偠 (120)

1 ???? ?? ?? 催? ?? ??? ?? ? ? ?? ??Ё?????? ? ?? ?? ? ? ?? ?? (Embebdded computer) Ё??? ?? ? ??? ⑤?20??60 ?? ????? ? ????? ? 1.1.1 ???? ??? ?? ? Н? ??? ????? ?? ?? ???? ???? ?? ?? ?? ?? ???? ??? ????? ? ?????BIOS? ? ? ???? ?催 ? ? ? ㄝ???? ? ??? ? ? ? ?????????? ???? ?? ? ? ? ? ???? ?? ? ? ???? ?ㄝ???? ???? ??? ? ? ??? ? ???? ? ? ?? ㄝ ?? ? ??? ? ?? ? (control)???Mointer) ??(Managemet)ㄝ ?? 1.1.2 ? ?????? ? ? 1.1. 2.1 ? ?? ? ?? ??4?? ? 1? ? ? ? ?? ? ? ???Ё ????? ???? ?? ? ? ?? ?2? ? ??? ?? ?????? ? ????? ??? П? ??? ??????? ? ?? ???? ? 3? ? ? ? ????? ?? ? 催 ? ? ? 4? ? 乏 ? ?? ?? ? ? ? ??? ? ? Ё??∴??? ?? ?? ?? ? mW??uW??1.1.2.2 ? ???? ???? ?? ?? ? ? ?? ? ??? ?? ? ? ? ? ???1000 ??????? 30 ?? ?

操作系统习题及解答讲解学习

操作系统习题及解答

第一章绪论 一、单项选择题 1、在下列选择中,(D)不是操作系统关心的主要问题。 A、管理计算机裸机 B、设计、提供用户程序计算机硬件系统的界面 C、管理计算机系统资源 D、高级程序设计语言的编译器 2、批处理系统的主要缺点是(C)。 A、CPU利用率低 B、不能并发执行 C、缺少交互性 D、以上都不是 3、多道程序设计是指(D)。 A、在实时系统中并发运行多个程序 B、在分布系统中同一时刻运行多个程序 C、在一台处理器上同一时刻运行多个程序 D、在一台处理器上并发运行多个程序 4、以下最早的OS是(D)。 A、分布式系统 B、实时系统 C、分时系统 D、批处理系统 5、批处理OS提高了计算机系统的工作效率,但(D)。 A、不能自动选择作业执行 B、无法协调资源分配 C、不能缩短作业执行时间 D、在作业执行时用户不能直接干预

6、分时OS追求的目标是(C)。 A、高吞吐量 B、充分利用内存 C、快速响应 D、减少系统开销 7、多道批处理系统提高了计算机系统的资源利用率,同时(B) A、减少了各作业的执行时间 B、增加了作业吞吐量 C、减少了作业的吞吐量 D、减少了部分作业的执行时间 8、设计实时OS时,(B)不是主要追求目标。 A、安全可靠 B、资源利用率 C、及时响应 D、快速处理 9、现代OS的两个基本特征是(C)和资源共享。 A、多道程序设计 B、中断处理 C、程序的并发执行 D、实现分时与时实处理 10、OS中采用多道程序设计技术提高了CPU和外部设备的(A)。 A、利用率 B、可靠性 C、稳定性 D、兼容性 11、OS的基本类型有(B) A、批处理系统、分时系统及多任务系统 B、实时OS、批处理OS及分时OS C、单用户系统、多用户系统及批处理系统 D、实时系统、分时系统和多用户系统

操作系统实验心得(精选多篇)

操作系统实验心得 每一次课程设计度让我学到了在平时课堂不可能学到的东西。所以我对每一次课程设计的机会都非常珍惜。不一定我的课程设计能够完成得有多么完美,但是我总是很投入的去研究去学习。所以在这两周的课设中,熬了2个通宵,生物钟也严重错乱了。但是每完成一个任务我都兴奋不已。一开始任务是任务,到后面任务就成了自己的作品了。总体而言我的课设算是达到了老师的基本要求。总结一下有以下体会。 1、网络真的很强大,用在学习上将是一个非常高效的助手。几乎所有的资料都能够在网上找到。从linux虚拟机的安装,到linux的各种基本命令操作,再到gtk的图形函数,最后到文件系统的详细解析。这些都能在网上找到。也因为这样,整个课程设计下来,我浏览的相关网页已经超过了100个(不完全统计)。当然网上的东西很乱很杂,自己要能够学会筛选。不能决定对或错的,有个很简单的方法就是去尝试。就拿第二个实验来说,编译内核有很多项小操作,这些小操作错了一项就可能会导致编译的失败,而这又是非常要花时间的,我用的虚拟机,编译一次接近3小时。所以要非常的谨慎,尽量少出差错,节省时间。多找个几个参照资料,相互比较,慢慢研究,最后才能事半功倍。 2、同学间的讨论,这是很重要的。老师毕竟比较忙。对于课程设计最大的讨论伴侣应该是同学了。能和学长学姐讨论当然再好不过了,没有这个机会的话,和自己班上同学讨论也是能够受益匪浅的。

大家都在研究同样的问题,讨论起来,更能够把思路理清楚,相互帮助,可以大大提高效率。 3、敢于攻坚,越是难的问题,越是要有挑战的心理。这样就能够达到废寝忘食的境界。当然这也是不提倡熬夜的,毕竟有了精力才能够打持久战。但是做课设一定要有状态,能够在吃饭,睡觉,上厕所都想着要解决的问题,这样你不成功都难。 4、最好在做课设的过程中能够有记录的习惯,这样在写实验报告时能够比较完整的回忆起中间遇到的各种问题。比如当时我遇到我以前从未遇到的段错误的问题,让我都不知道从何下手。在经过大量的资料查阅之后,我对段错误有了一定的了解,并且能够用相应的办法来解决。 在编程中以下几类做法容易导致段错误,基本是是错误地使用指针引起的 1)访问系统数据区,尤其是往系统保护的内存地址写数据,最常见就是给一个指针以0地址 2)内存越界(数组越界,变量类型不一致等) 访问到不属于你的内存区域 3)其他 例如: <1>定义了指针后记得初始化,在使用的时候记得判断是否为 null <2>在使用数组的时候是否被初始化,数组下标是否越界,数组元素是否存在等 <3>在变量处理的时候变量的格式控制是否合理等

操作系统原理实验四

实验4 进程控制 1、实验目的 (1)通过对WindowsXP进行编程,来熟悉和了解系统。 (2)通过分析程序,来了解进程的创建、终止。 2、实验工具 (1)一台WindowsXP操作系统的计算机。 (2)计算机装有Microsoft Visual Studio C++6.0专业版或企业版。 3、预备知识 (3)·CreateProcess()调用:创建一个进程。 (4)·ExitProcess()调用:终止一个进程。 4、实验编程 (1)编程一利用CreateProcess()函数创建一个子进程并且装入画图程序(mspaint.exe)。阅读该程序,完成实验任务。源程序如下: # include < stdio.h > # include < windows.h > int main(VOID) ﹛STARTUPINFO si; PROCESS INFORMA TION pi; ZeroMemory(&si,sizeof(si)); Si.cb=sizeof(si); ZeroMemory(&pi,sizeof(pi)); if(!CreateProcess(NULL, “c: \ WINDOWS\system32\ mspaint.exe”, NULL, NULL, FALSE, 0, NULL, NULL, &si,&pi)) ﹛fprintf(stderr,”Creat Process Failed”); return—1; ﹜ WaitForSingleObject(pi.hProcess,INFINITE); Printf(“child Complete”); CloseHandle(pi.hProcess); CloseHandle(pi hThread); ﹜

计算机操作系统期末测试题及答案解析(两套)

操作系统期末试题1 一、单项选择题(每题2分,共20分) 1.在操作系统中,进程的最基本的特征是( A )。 A. 动态性和并发性 B.顺序性和可再现性 C.与程序的对应性 D.执行过程的封闭性 2.为了使系统中各部分资源得到均衡使用,就必须选择对资源需求不同的作业进行合理搭配。这项工作是由( A )完成的。 A.作业调度 B. 进程调度 C.用户自己D.管理人员 3.虚拟存储器给用户提供了特大的地址空间。实际上它是( C )。 A. 扩大物理内存容量 B.扩大物理外存容量 C. 扩大逻辑内存容量 D.扩大逻辑外存容量 4.引入缓冲技术的主要目的是( C )。 A. 改善用户编程环境 B.提高CPU的处理速度 C.提高CPU与设备之间的并行程度 D.降低计算机的硬件成本 5.在微内核结构的现代操作系统中,进程( A )。 A. 只是资源分配的单位 B.只是调度运行的单位 C.既是资源分配的单位,又是调度运行的单位 D.失去作用 6. (A)没有多道程序设计的特点。 A.dos B.unix B.windows D.os/2 7. 下列四个操作系统中,是分时系统的为(C)。 A.cp/m B.ms-dos C.unix D.windows nt 8. 在分时系统中,时间片一定,(B),响应时间越长。 A.内存越多 B.用户数越多 C.后备队列 D.用户数越少 9. 用户要在程序一级获得系统帮助,必须通过(D)。 A.进程调度 B.作业调度 C.键盘命令 D.系统调用 10. 操作系统是一组(C)。 A.文件管理程序 B.中断处理程序 C.资源管理程序 D.设备管理程序 二、判断题(选择你认为正确的叙述划√,认为错误的划×并说明原因。每题2分,共10分)

嵌入式实时操作系统实验报告

嵌入式实时操作系统实验报告 任务间通信机制的建立 系别计算机与电子系 专业班级***** 学生姓名****** 指导教师 ****** 提交日期 2012 年 4 月 1 日

一、实验目的 掌握在基于嵌入式实时操作系统μC/OS-II的应用中,任务使用信号量的一般原理。掌握在基于优先级的可抢占嵌入式实时操作系统的应用中,出现优先级反转现象的原理及解决优先级反转的策略——优先级继承的原理。 二、实验内容 1.建立并熟悉Borland C 编译及调试环境。 2.使用课本配套光盘中第五章的例程运行(例5-4,例5-5,例5-6),观察运行结果,掌握信号量的基本原理及使用方法,理解出现优先级反转现象的根本原因并提出解决方案。 3.试编写一个应用程序,采用计数器型信号量(初值为2),有3个用户任务需要此信号量,它们轮流使用此信号量,在同一时刻只有两个任务能使用信号量,当其中一个任务获得信号量时向屏幕打印“TASK N get the signal”。观察程序运行结果并记录。 4. 试编写一个应用程序实现例5-7的内容,即用优先级继承的方法解决优先级反转的问题,观察程序运行结果并记录。 5.在例5-8基础上修改程序增加一个任务HerTask,它和YouTask一样从邮箱Str_Box里取消息并打印出来,打印信息中增加任务标识,即由哪个任务打印的;MyTask发送消息改为当Times为5的倍数时才发送,HerTask接收消息采用无等待方式,如果邮箱为空,则输出“The mailbox is empty”, 观察程序运行结果并记录。 三、实验原理 1. 信号量 μC/OS-II中的信号量由两部分组成:一个是信号量的计数值,它是一个16位的无符号整数(0 到65,535之间);另一个是由等待该信号量的任务组成的等待任务表。用户要在OS_CFG.H中将OS_SEM_EN开关量常数置成1,这样μC/OS-II 才能支持信号量。

操作系统原理实验五

实验五线程的同步 1、实验目的 (1)进一步掌握Windows系统环境下线程的创建与撤销。 (2)熟悉Windows系统提供的线程同步API。 (3)使用Windows系统提供的线程同步API解决实际问题。 2、实验准备知识:相关API函数介绍 ①等待对象 等待对象(wait functions)函数包括等待一个对象(WaitForSingleObject ())和等待多个对象(WaitForMultipleObject())两个API函数。 1)等待一个对象 WaitForSingleObject()用于等待一个对象。它等待的对象可以为以下对象 之一。 ·Change ontification:变化通知。 ·Console input: 控制台输入。 ·Event:事件。 ·Job:作业。 ·Mutex:互斥信号量。 ·Process:进程。 ·Semaphore:计数信号量。 ·Thread:线程。 ·Waitable timer:定时器。 原型: DWORD WaitForSingleObject( HANDLE hHandle, // 对象句柄 DWORD dwMilliseconds // 等待时间 ); 参数说明: (1)hHandle:等待对象的对象句柄。该对象句柄必须为SYNCHRONIZE访问。 (2)dwMilliseconds:等待时间,单位为ms。若该值为0,函数在测试对象的状态后立即返回,若为INFINITE,函数一直等待下去,直到接收到 一个信号将其唤醒,如表2-1所示。 返回值: 如果成功返回,其返回值说明是何种事件导致函数返回。

Static HANDLE hHandlel = NULL; DWORD dRes; dRes = WaitForSingleObject(hHandlel,10); //等待对象的句柄为hHandlel,等待时间为10ms 2)等待对个对象 WaitForMultiple()bject()在指定时间内等待多个对象,它等待的对象与 WaitForSingleObject()相同。 原型: DWORD WaitForMultipleObjects( DWORD nCount, //句柄数组中的句柄数 CONST HANDLE * lpHandles, //指向对象句柄数组的指针 BOOL fWaitAll, //等待类型 DWORD dwMilliseconds //等待时间 ); 参数说明: (1)nCount:由指针 * lpHandles指定的句柄数组中的句柄数,最大数是MAXIMUM WAIT OBJECTS。 (2)* lpHandles:指向对象句柄数组的指针。 (3)fWaitAll:等待类型。若为TRUE,当由lpHandles数组指定的所有对象被唤醒时函数返回;若为FALSE,当由lpHandles数组指定的某一个 对象被唤醒时函数返回,且由返回值说明是由于哪个对象引起的函数 返回。 (4)dwMilliseconds:等待时间,单位为ms。若该值为0,函数测试对象的状态后立即返回;若为INFINITE,函数一直等待下去,直到接收到 一个信号将其唤醒。 返回值:、 如果成功返回,其返回值说明是何种事件导致函数返回。 各参数的描述如表2-2所示。

操作系统第四章作业讲解

1、“整体对换从逻辑上也扩充了内存,因此也实现了虚拟存储器的功能”这种说法是否正确请说明理由。 答:上述说明法是错误的。整体对换将内存中暂时不用的某个程序及其数据换出至外存,腾出足够的内存空间以装入在外存中的、具备运行条件的进程所对应的程序和数据。虚拟存储器是指仅把作业的一部分装入内存便可运行作业的存储器系统,是指具有请求调入功能和置换功能,能从逻辑上对内存容量进行扩充的一种存储器系统,它的实现必须建立在离散分配的基础上。虽然整体对换和虚拟存储器均能从逻辑上扩充内存空间,但整体对换不具备离散性。实际上,在具有整体对换功能的系统中,进程的大小仍受到实际内存容量的限制。 2、某系统采用页式存储管理策略,拥有逻辑空间32页,每页为2KB,拥有物理空间1MB。 1)写出逻辑地址的格式。 2)若不考虑访问权限等,进程的页表有多少项每项至少有多少位 3)如果物理空间减少一半,页表结构应相应作怎样的改变 答:1)该系统拥有逻辑空间32页,故逻辑地址中页号必须用5位来描述,而每页为2KB,因此,页内地址必须用11位来描述。这样,可得到它的逻辑地址格式如下: 2)每个进程最多有32个页面,因此,进程的页表项最多为32项;若不考虑访问权限等,则页表项中只需给出页所对应的物理块号。1MB的物理空间可分成29个内存块,故每个页表项至少有9位。 3)如果物理空间减少一半,则页表中项表项数仍不变,但每项的长度可减少1位。 3、已知某系统页面长4KB,每个页表项为4B,采用多层分页策略映射64位的用户地址空 间。若限定最高层页表只占1页,则它可采用几层分页策略 答:方法一:由题意可知,该系统的用户地址空间为264B,而页的大小为4KB,故作业最多可有264/212(即252)个页,其页表的大小则为252*4(即254)B。因此,又可将页表分成242个页表页,并为它建立两级页表,两级页表的大小为244B。依次类推,可知道它的3、4、5、6级页表的长度分别是234B、224B、214B、24B,故必须采取6层分页策略。 方法二:页面大小为4KB=212B,页表项4B=22B,因此一个页面可以存放212/22=210个面表项,因此分层数=INT[64/10]=6层 4、对于表所示的段表,请将逻辑地址(0,137)、(1,4000)、(2,3600)、(5,230)转换 成物理地址。 答:[0,137]:50KB+137=51337; [1,4000]:段内地址越界;

操作系统实验报告

操作系统教程 实 验 指 导 书 姓名: 学号: 班级:软124班 指导老师:郭玉华 2014年12月10日

实验一WINDOWS进程初识 1、实验目的 (1)学会使用VC编写基本的Win32 Consol Application(控制台应用程序)。 (2)掌握WINDOWS API的使用方法。 (3)编写测试程序,理解用户态运行和核心态运行。 2、实验内容和步骤 (1)编写基本的Win32 Consol Application 步骤1:登录进入Windows,启动VC++ 6.0。 步骤2:在“FILE”菜单中单击“NEW”子菜单,在“projects”选项卡中选择“Win32 Consol Application”,然后在“Project name”处输入工程名,在“Location”处输入工程目录。创建一个新的控制台应用程序工程。 步骤3:在“FILE”菜单中单击“NEW”子菜单,在“Files”选项卡中选择“C++ Source File”, 然后在“File”处输入C/C++源程序的文件名。 步骤4:将清单1-1所示的程序清单复制到新创建的C/C++源程序中。编译成可执行文件。 步骤5:在“开始”菜单中单击“程序”-“附件”-“命令提示符”命令,进入Windows“命令提示符”窗口,然后进入工程目录中的debug子目录,执行编译好的可执行程序: E:\课程\os课\os实验\程序\os11\debug>hello.exe 运行结果 (如果运行不成功,则可能的原因是什么?) : 有可能是因为DOS下路径的问题 (2)计算进程在核心态运行和用户态运行的时间 步骤1:按照(1)中的步骤创建一个新的“Win32 Consol Application”工程,然后将清单1-2中的程序拷贝过来,编译成可执行文件。 步骤2:在创建一个新的“Win32 Consol Application”工程,程序的参考程序如清单1-3所示,编译成可执行文件并执行。 步骤3:在“命令提示符”窗口中运行步骤1中生成的可执行文件,测试步骤2中可执行文件在核心态运行和用户态运行的时间。 E:\课程\os课\os实验\程序\os12\debug>time TEST.exe 步骤4:运行结果 (如果运行不成功,则可能的原因是什么?) : 因为程序是个死循环程序 步骤5:分别屏蔽While循环中的两个for循环,或调整两个for循环的次数,写出运行结果。 屏蔽i循环: 屏蔽j循环: _______________________________________________________________________________调整循环变量i的循环次数:

相关主题
文本预览
相关文档 最新文档