总体设计
实时系统的基本要求是实时性。本文采用以共享内存为中转的打印假脱机技术,所有的打印 *** 作在内存中提交完成,保证了应用系统对打印 *** 作的及时响应。
另一要求是设备无关性,使提交打印的 *** 作尽可能地做到与设备无关。程序不会因为打印机设备的不同,导带链致程序有较大的修改。如果打印机不同,只需加载相应的打印驱动程序即可。
总体上实时行式打印系统的设计分为两个部分,一个是以内存为基础的打印假脱机部分的设计;另一个是实时打印驱动层部分的设计。
实时行打印假脱机部分
这个部分的基本原理是使用一个基于共享内存技术的先入先出队列,用来存储其他应用程序提交的实时打印请求。打印进程从先入先出的环形队列取出打印请求,经过必要的处理之后,提交给打印驱动部分,由打印驱动部分负责驱动相应的打印机输出。
为满足其他应用程序提交打印请求的需要,在此使用了Windows *** 作系统提供的共享内存技术。共享内存是进程之间通信时用的一种技术,是一种更为标准、更为核心的技术,而且它在不同 *** 作系统平台之间的移植性也比较好(Unix系列 *** 作系统也有码行哪这种技术)。另一个好处是提高了实时性能,因为避免了多次内存复迟码制的系统空间和时间上的开销。
Windows系统中与创建共享内存相关的系统函数有CreateFileMapping和MapViewOfFile。
第一个函数用来在系统中创建一块共享内存,并返回共享内存的句柄。其参数说明如下:
HANDLE WINAPI CreateFileMapping (
HANDLE hFile,
LPSECUR99vY _ATTRIBUTES lpsa,
DWORD dwPROTECT,
DWORD dwMaxSizeHigh,
DWORD dwMaxSizeLow,
LPCSTR lpszMapName)
hFile为文件句柄,要创建共享内存,该参数必须为0xfffffffflpsa为安全属性结构指针dwPROTECT是页保护标识,如PAGE_READONLY,PAGE_READWR99vE等dwMaxSizeHigh和dwMaxSizeLow共同定义了共享内存的尺寸,分别为共享内存大小的高32位和低32位lpszMapName定义了共享内存的名字,必须确保其在系统范围内的惟一性。
第二个函数用来将创建的共享内存映射到调用进程的地址空间,并返回该地址空间的首地址。其参数说明如下:
MapViewOfFile(
HANDLE hFileMappingObject,
DWORD dwDesiredAccess,
DWORD dwFileOffsetHigh,
DWORD dwFileOffsetLow,
DWORD dwNumberOfBytesToMap)
hFileMappingObject定义了CreateFileMapping
函数返回的共享内存句柄dwDesiredAccess定义了共享内存的访问模式,如:FILE_MAP_ALL_ACCESS等dwFileOffsetHigh和dwFileOffsetLow共同定义了共享内存起始位置的偏移量,分别为该偏移量的高32位和低32位,通常情况下二者都为零值dwNumberOfBytesToMap定义了映射到本进程地址空间的共享内存的字节数,如果该值为零,则映射所有的共享内存。
1. *** 作系统设计目标:方便性、有效性、便于设计实现维护。2.引入多道程序系统的原因:提高CPU的利用率。
特点:在主存同时存放多个作业,使之同时处于运行状态,共享系统中的各种资源。
3. *** 作系统基本功能:处理机管理、存储器管理、设备管理、文件管理。
4.批处理系统特点:吞吐量大、资源利雀猜卖用率高、无法交互、平均周转时间长。
分时系统特点:同时性、独立性、交互性、及时性。
实时系统特点:实时性、可靠性、确定性。
5.衡量OS的性能指标:资源利用率、吞吐量、周转时间。
6.对称多处理: *** 作系统和用户程序可安排在任何一个处理机上运行,各处理
机共享主存和各种I/O设备。
7. *** 作系统的特性:并发性、共享性、虚拟性、异步性。
8.CPU工作状态:核心态( *** 作系统内核程序)、用户态(用户程序)。
用户态到核心态的转换由硬件完成。
核心态到用户态的转换由内核程序执行后完成。
9.系统调用:兆简内核向用户提供的,用来运行系统内核子程序的接口。
特权指令执行时,CPU处于核心态。
10.用户与 *** 作系统的接口: *** 作接口(命令语言或窗口界面)、
编程接口(系统顷逗调用)。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)