• 1. 第6章 操作系统 4 学时
  • 2. 本章教学目的与要求掌握操作系统的基本概念、功能和应用 了解Windows操作系统的体系结构 掌握操作系统的资源管理的概念和术语 领会操作系统的并发机制 理解资源分配和调度过程
  • 3. 本章主要内容6.2操作系统的功能与作用6.3进程管理应用程序设计6.5设备与文件管理应用程序设计6.6人机接口管理应用程序设计6.1操作系统的概念及术语6.4内存管理应用程序设计
  • 4. 操作系统的概念及术语操作系统定义? 一组控制和管理计算机软、硬件资源,为用户提供便捷使用计算机的程序的集合 作用 管理计算机和使用计算机 特征 并发性、共享性、虚拟性和不确定性
  • 5. 操作系统的功能CPU与进程管理 存储器管理 设备管理 文件管理 接口管理操作系统包含哪5大功能模块?
  • 6. 操作系统的功能—CPU与进程管理进程管理:对处理器的时间进行合理分配、对处理器的运行实施有效的管理 进程的概念: 进程 (Process)就是程序的一次执行过程,是系统进行资源分配和调度的一个独立单位。 进程管理也被称为处理机管理。处理机是计算机系统中的重要资源,所以它管理的好坏在很大程度上直接影响系统的效率。处理机管理又分两个部分:作业管理和进程管理。 进程管理是由程序管理进化而来,是和程序管理密不可分的。1966年美国麻省理工学院的J.H.Sallexer提出的
  • 7. 操作系统的功能—CPU与进程管理进程具有两个重要特征: 动态性:表现在它由"创建"而产生,由"调度"而执行,因得不到资源而"暂停"执行,最后由"撤消"而消亡。进程有自己的生命周期。 并发性:就是程序的并发执行。在系统中可以同时存在几个进程。在单CPU系统中,任何时刻只有一个进程占用CPU,其它进程处于等待状态。进程有着走走停停的活动规律。引入进程的目的是为了程序的并发执行,以提高资源的利用率。 并发性是操作系统的主要特性之一进程还有独立性和异步性特征
  • 8. 操作系统的功能—CPU与进程管理进程有三种基本状态:就绪状态、运行状态、等待状态。 就绪状态 已经获得投入运行所必需的一切资源,一旦分配到CPU,就可以立即执行。这是一种逻辑上可运行状态。 运行状态 进程获得了CPU及其它一切所需资源,正在CPU上运行着。 等待状态 由于资源得不到满足,进程运行受阻,处于暂停状态,等待资源分配后,再投入运行。 万事具备,只欠东风。
  • 9. 操作系统的功能—CPU与进程管理
  • 10. 功能:对存储器进行分配、保护和扩充 任务: 存储空间的分配和释放;存储空间的地址变换;存储空间的分区保护;主存空间的扩充。 内存管理的分类: 最常用的主存管理方法分为单一连续区存储管理、多连续区存储管理、页式存储管理和段式存储管理。操作系统的功能—存储器管理
  • 11. 功能:根据确定的设备分配原则对设备进行分配,使设备与主机能够并行工作,为用户提供良好的设备使用界面。 设备管理的基本任务: (1) 外部设备中断处理。 (2) 外部设备的接口程序设计和设备驱动。 (3) 外部设备的分配与释放。 (4) 虚拟设备的实现与管理。操作系统的功能—设备管理
  • 12. 外部设备的分类方法: (1) 按使用方式分:独占设备,共享设备; (2) 按处理速度分:慢速设备,快速设备; (3) 按数据组织和存取方式分:字符设备,块设备; (4) 按通信方式分:串行设备,并行设备; (5) 按应用范围分:通用设备,专用设备; (6) 按隶属关系分:系统设备,用户设备; (7) 按实体程序分:真实设备,虚拟设备。操作系统的功能—设备管理
  • 13. 有效地管理文件的存储空间,合理地组织和管理文件系统,为文件访问和文件保护提供更有效的方法及手段 文件 FILE 是存于计算机中且具有唯一名字的一组相关信息的集合。 计算机中的所有信息、包括各种不同类型的程序都是以文件的形式存放的。对计算机的操作,实际上是对文件的操作。包括:文件的建立、修改、打开、关闭、复制、删除等等。 文件名是文件在计算机中唯一的标识符。它的组成形式为主文件名 . 扩展名操作系统的功能—文件管理由1到8个字符组成 WINDOWS支持长文件名,最长可达255个字符、且可以包括空格。通常是由3个字符组成
  • 14. 用户接口:是用户操作计算机的界面,或称为用户界面。通过用户接口,用户只需进行简单操作,就能实现复杂的应用处理 用户接口实际上是通过菜单、屏幕设计、键盘命令、鼠标操作、命令语言和帮助系统等实现的。 用户接口实质上提供了一个人机界面(HCI),包括:基于字符界面的接口、基于图形用户界面接口GUI、多媒体接口、其他特殊类型的接口。 用户接口类型:程序接口和命令接口。操作系统的功能—接口管理
  • 15. 用户接口类型
  • 16. 用户接口类型命令接口:用户通过交互命令方式直接或间接地对计算机进行操作, DOS:是纯命令行输入方式,Windows:鼠标操作方式 程序接口:供用户以程序方式进行操作,或API(Application Programming Interface),用户通过API函数可以调用系统提供的例行程序,实现既定的操作。 DOS:中断服务功能;Windows:Windows API函数
  • 17. 典型操作系统比较
  • 18. DOS与Windows使用方法简介 DOS 常用命令:HELP DIR CLS CD RD COPY … Windows 最常用的功能是:桌面、浏览器、资源管理器、我的电脑、网上邻居、控制面板、任务管理器、Word、Excel、VC++,记事本(Notepad),写字板(write)…
  • 19. DOS与Windows系统程序接口简介 DOS 单用户单任务的磁盘操作系统。功能体现在系统提供的DOS和BIOS层上,借助于高级语言和汇编语言,并通过调用中断服务程序,可以完成大部分编程工作。 Windows WINDOWS API调用系统程序,完成任务。
  • 20. Windows NT体系结构 登录进程和会话管理器 事件日志、调度服务、SQL ServerWin32 MS-DOS程序和Win32程序进程线程管理、I/O和内存管理 线程调度、中断和异常处理 将内核、设备驱动程序和执行体分离以适应不同的平台 将I/O函数调用转换为I/O请求 窗口和绘制
  • 21. Windows标准化窗口界面
  • 22. Windows消息机制Windows程序是以事件为驱动、消息机制为基础 消息定义:由用户操作而向应用程序发出的信息,也包括操作系统内部产生的消息。 消息类型:windows消息,命令消息和控件通知 WM_LBUTTONDOWN 、WM_PAINT 消息结构:消息号和参数组成 typedef struct tagMSG{ HWND hwnd;窗口句柄,为NULL,则可检索所有驻留在消息队列中的消息 UINT message;消息值,由windows.h头文件中的宏定义来标识 WPARAM wParam;包含有关消息的附加信息,不同消息其值有所不同 LPARAM lParam; DWORD time; 指定消息送至队列的时间 POINT pt;指定消息发送时屏幕光标的位置, 其数据类型POINT也是一个结构体 }MSG;
  • 23. Windows程序框架 控制台程序(DOS)结构 对话框框架程序 文档视图框架程序
  • 24. WinMain框架结构要求: 显示一个窗口 在窗口中显示一段文字 步骤: 打开VC++ 新建工程类型为“Win32 Application” 添加C++源程序
  • 25. #include class Cgu1App:public CWinApp { public: BOOL InitInstance(); }; BOOL Cgu1App::InitInstance() { CFrameWnd *pFrame=new CFrameWnd; pFrame->Create(0,_T("gugang")); pFrame->ShowWindow(m_nCmdShow); this->m_pMainWnd=pFrame; return TRUE; } Cgu1App ThisA;C++源程序
  • 26. 演示运行对话框框架程序步骤 打开VC++ 工程类型为“MFC AppWizard(exe) ” 程序类型为“Dialog based ” 改变窗口标题 改变静态控件标题
  • 27. 演示运行文档视图框架程序 步骤 打开VC++ 工程类型为“MFC AppWizard(exe) ” 程序类型为“Single document ” 改变窗口标题 在视图类的OnDraw函数中添加代码: “pDC->TextOut(100,100,"MFC文档/视图演示程序");”
  • 28. 进程管理应用程序设计 Windows操作系统的进程和线程管理 进程和线程的应用 进程控制块 进程的同步 进程通信 进程调度 死锁 线程的应用
  • 29. 进程管理应用程序设计 进程 进程的状态及转换 进程控制块PCB 进程的同步 进程通信 进程调度 死锁 PCB 描述进程,记录进程必须的一些信息。记录型数据结构由于临界资源共享性与排它性,进程必须按照一定的机制(信号量标志)使用这些资源以保证进程能够有序的执行,这就是进程的同步。进程同步是进程通信的一种形式。通信有多种方式:利用共享数据结构或各项内存进行通信;利用消息机制通信;利用共享文件进行通信。功能:按照一定的原则把CPU动态地分配给某一个就绪进程。 方式:抢占式和非抢占式。 进程调度策略/算法:优先级调度算法、时间片轮转调度算法、多重时间片循环调度算法竟争系统资源或相互通信的进程间造成“永久”阻塞。
  • 30. 程序、进程与线程 ◈程序 一个静态概念,代表有严格时间顺序的可执行指令序列,输入、处理和输出三部分组成指令序列特征 并发性、共享性、虚拟性和不确定性 ◈进程 程序的一次执行。系统进行资源调度和分配的独立单位,即执行程序所需的全部资源。
  • 31. 线程及其应用 线程 进程内的一个可调度实体,一个执行单元,更小的、轻量级的进程,指令序列 。 程序运行的基本单位,不过它仅作为CPU调度单位,它只拥有必不可少的。 具有进程的特征,包含于进程中并使用进程的地址空间。 线程的优点 减小并发执行的时间和空间开销 线程的状态 就绪、阻塞(等待)和执行
  • 32. 线程与进程的区别 线程是比进程更小的单位,从运行角度来讲,同类线程的数据和代码区是共享的,这有利于线程的快速调度和切换,而进程之间的数据和代码区是独立的。 线程及其应用
  • 33. Windows下的线程状态转换
  • 34. 例编写动态显示时钟时间的线程 CTime类 时间 CString类 字符串  CreateThread 函数格式 HANDLE CreateThread( LPSECURITY_ATTRIBUTES lpThreadAttributes, // 线程安全属性 DWORD dwStackSize, // 初始线程栈大小 LPTHREAD_START_ROUTINE lpStartAddress, //线程函数 LPVOID lpParameter, // 参数 DWORD dwCreationFlags, // 标志 LPDWORD lpThreadId // 保存线程号 ); 返回线程句柄
  • 35. TerminateThread 函数格式 BOOL TerminateThread( HANDLE hThread, // 线程句柄 DWORD dwExitCode // 退出码 ); 成功返回非0 例编写动态显示时钟时间的线程
  • 36. 步骤 建立对话框程序 在对话框中拖入一个静态文本控件(时间标题) 一个编辑文本控件(时间) 四个按钮(启动、停止、确定、取消) 增加按钮消息函数 添加全局变量和函数代码 DWORD ThreadID;//定义线程编号变量 HANDLE hThread;//定义线程句柄变量 void ThreadProc(){//线程函数 添加按钮消息代码 OnStart() OnStop() 例 编写动态显示时钟时间的线程
  • 37. 存储器管理应用程序设计存储器管理的相关概念 存储器数据空间的动态分配 存储器代码空间的动态分配
  • 38. 存储器管理:问题提出所有计算机处理的数据和程序都是存放在外存中, 使用时才调入内存。这是冯.诺依曼的工作机制 调入内存后如何分配存储空间?(讨论) 多个程序存储空间怎样分配?(讨论) 在小内存中能否运行大程序?(讨论) 同一程序多次装入内存其地址相同吗?即如何解决程序的重定位问题?(讨论) 怎样解决存储保护?
  • 39. 主存贮器属于比较宝贵的共享硬件资源,特别是随着多道程序技术的引入,要求能在主存中同时存贮多个程序,这就使内存资源显得更加紧张。 一方面,希望不断扩大主存贮器的容量,而另一方面,则必须借助于对主存的合理组织和综合管理。 虚拟存储器的理念:用户感到内存无限的大,并且使用内存采用相对地址。存储器管理的目的
  • 40. 存储分配:按分配策略和算法分配主存空间; 地址变换:将程序在外存中的逻辑地址转换为在内存中的物理地址; 存储保护:保护各类程序(系统的、用户的、应用程序的)及数据区免遭破坏; 存储扩充:解决在小的存储空间中运行大程序的问题,即虚拟存储问题。存储器管理主要功能
  • 41. 存储器管理:问题提出如何更好地管理和使用计算机存储器。所有计算机处理的数据和程序都是存放在外存中,使用时才调入内存。这是冯.诺依曼的工作机制 调入内存后如何分配存储空间? 多个程序存储空间怎样分配? 在小内存中能否运行大程序? 同一程序多次装入内存其地址相同吗?即如何解决程序的重定位问题? 怎样解决存储保护?
  • 42. 存储器管理解决几个问题: 存储空间的分配和回收 地址映射 内存保护存储器管理的目的
  • 43. 存储分配:按分配策略和算法分配主存空间; 地址变换:将程序在外存中的逻辑地址转换为在内存中的物理地址; 存储保护:保护各类程序(系统的、用户的、应用程序的)及数据区免遭破坏; 存储扩充:解决在小的存储空间中运行大程序的问题,即虚拟存储问题。存储器管理主要功能
  • 44. 严格来讲,存储器管理分为实存管理和虚存管理两个方面:所谓实存是指实际的物理存储器,它包括高速缓存、主存和外存所对应的装置。这些存储器均具有实际的存储地址,称实存的空间地址为实地址。由于处理器直接存取的信息主要在主存中,因此,通常实地址主要针对主存而言,即前面提到的绝对地址。 用户在实际编程时,所用的地址是逻辑地址,其地址空间可与实空间一一对应,也可以不一一对应。可以设想存在一个虚拟的存储设备,或虚存,提供了逻辑地址对应的虚拟空间存储器管理的实质
  • 45. 存储器管理任务 ◈对内存储器进行分配、变换、保护和扩充,存储管理还应该能够在内存和外存之间交换数据和代码。 ◈在Windows操作系统下,存储器被保护起来,程序和用户无法直接访问,需要在程序中通过静态和动态两种方式来访问。 ◈ Windows的内存管理完成物理内存和虚拟内存之间的交换,虚拟内存是32位的,多达4GB的大小,内存管理还提供了一个核心服务,完成内存映射文件、写时复制内存和用户程序使用的大量和稀疏内存的管理。
  • 46. NT内存管理Windows NT在X86体系下虚拟地址空间的分布 8×256MB 2GB
  • 47. 虚拟存储器技术它的基本思想是: 把部分外存空间作为主存使用,以此为用户提供足够大的地址空间——虚存空间。用户可以在这个地址空间内编程,而完全不考虑主存的大小。 虚拟存储器技术实际上是采用内、外存结合的办法实现的。硬件负责虚实地址的转换;软件负责实存(主存)和虚存(外存)之间的信息调度管理。
  • 48. 用户程序访问内存两种方式◆静态访问: 程序中声明各种变量float a[100]; ◆动态访问: 通过指针申请内存空间 new命令 malloc()和VirtualAlloc()
  • 49. LPVOID VirtualAlloc( LPVOID lpAddress, // 起始地址 DWORD dwSize, // 大小 DWORD flAllocationType, // 分配类型!(MEM_COMMIT等) DWORD flProtect // 保权限(PAGE_READWRITE等) ); BOOL VirtualFree( LPVOID lpAddress, //起始地址 DWORD dwSize, //大小 DWORD dwFreeType //释放类型(MEM_RELEASE等) ); 申请虚拟内存函数和释放函数
  • 50. 程序算法: ①从命令行接收输入n (n为要求阶乘的数) 使用strtol函数将argv[1]转换为long整数; ②通过函数VirtualAlloc申请 n*1024 的地址空间 相当于声明数组a[n*1024] ③调用计算阶乘函数lfac; ④一位一位显示阶乘结果; ⑤通过函数VirtualFree 释放虚拟内存。 虚拟内存使用例 使用动态申请的虚拟内存空间来编写一个计算任何数的阶乘的程序
  • 51. #include #include int lfac(int *a, int n) { int sum,sc; for(int i=0;i0) return -1; else return 0; }计算任何数的阶乘函数
  • 52. int main(int argc, char *argv[]) { if (argc < 2) { cout<<"\a使用方法: Example3_6 <被阶乘数>"; return 1; } char *p; int n=strtol(argv[1],&p,10);//转换为long型整数 if(n<0) { cout<<"\a输入数据错"; return 1; } int * lpBase =(int *) VirtualAlloc(NULL, n*10240, MEM_COMMIT, PAGE_READWRITE);// 保留 n*10240 的地址空间 int * lpPage = (int *)VirtualAlloc (lpBase + 0, n*1024,MEM_COMMIT,PAGE_READWRITE);// 为页地址提交内存 int a; bool flag=false; a=lfac(lpPage,n); if(a<0) cout<<"溢出"<=0;i--) if(flag || lpPage[i]>0) { flag=true; cout<
  • 53. 设备管理与程序设计主要任务:根据确定的设备分配原则对设备进行分配,使设备与主机能够并行工作,为用户提供良好的设备使用界面,以提高设备与设备之间,设备与CPU之间,进程与进程之间的并行性,从而提高整个操作系统的效率。
  • 54. 设备管理与程序设计通过对外部设备的统一管理,目的是给用户使用设备提供方便,即由设备管理程序提供高级的设备使用方法,使用户无需了解各种物理设备的具体细节。此外,尽可能地保证处理机与外部设备的性能发挥,不致于发生高速CPU与低速设备在性能上的严重不匹配现象。
  • 55. 内存储器键盘显示器设备管理数据交换示意图
  • 56. 1)外部设备中断处理 2)外部设备的接口程序设计和设备驱动(真正的I/O操作)。 3)外部设备的分配与释放 4)虚拟设备的实现与管理(I/O缓冲区管理) 设备管理模块
  • 57. 设备管理与程序设计程序直接控制方式 中断控制方式 DMA方式 通道方式操作系统的设备管理程序通过四种控制方式完成设备与内存之间的数据传送
  • 58. 循环检测方式N号设备忙否置忙标志延时交换一个单位信息置闲标志信息交换完否如 何 检 测 ?
  • 59. 中断方式 当一个设备处于工作状态时,CPU可能继续处理其他任务,而无需等待。设备在工作结束后,可以通过向处理机发送中断信号,打断CPU正在处理的任务,通知CPU设备已处于“闲”状态,于是CPU可以向设备发送信息,安排其新的任务,此后,又可返回继续处理被中断的任务。 什么是中断方式?
  • 60. DMA方式 DMA(Direct Memory Access)方式,即直接内存存取方式。它是在硬件的支持下,通过占用总线控制权,实现信息交换的方法。这种方法并不中断当前处理机的工作,而只是在CPU暂停的几个周期内由DMA控制器实现信息交换。 什么是DMA方式?
  • 61. 通道方式 所谓通道是指具有独立的输入输出功能的处理装置,或者说是专门负责输入输出任务的专用机。实际上,DMA控制器属于较简单的通道装置。功能更强更为完整的通道本身就是一台计算机。在大型计算机系统中,可以有多个输入输出通道,每个通道又可带多个外部设备。通道与主处理机可以相对独立地工作,通道与通道间也可并行工作。 什么是通道方式?
  • 62. 设备管理与程序设计缓冲技术 单缓冲、双缓冲、多缓冲和单缓冲池 设备分配 专门的数据结构 最佳的设备分配原则和策略 静态分配法、动态分配法、虚拟分配法 设备驱动程序
  • 63. 文件管理与程序设计主要任务:有效地管理文件的存储空间,合理地组织和管理文件系统,为文件访问和文件保护提供更有效的方法及手段,并把这种存储、检索、共享和保护文件的手段提供给操作系统本身和用户,以达到方便用户和提高资源利用率的目的。
  • 64. 为了实现对文件的有效管理,要对它们进行周密的组织。采用树形文件目录结构是最常用的一种文件组织形式。 文件系统的目录结构的作用与图书中目录的作用完全相同,实现快速检索。同时,对文件目录管理还要求具有: 按名存取 快速检索 通过合理地组织目录结构,实现快速检索。 文件共享 允许多个用户共享一个文件。 允许文件重名 允许不同用户按自己的习惯和实际需要命名文件。 文件管理需解决的问题
  • 65. 文件组成结构文件 一组相关信息的集合,文件具有一定的数据结构、数据、分类属性和访问权限。 文件从物理上,由位(bit)、字节(byte)、块(block)、页(page)和盘(disk)等组成; 物理结构有连续文件结构、串联文件结构和索引文件结构。 从逻辑上,有字(word)、字段(segment)、记录(record)、虚拟块(virtual block)、文件(file)、文件目录(file directory)、文件夹(folder)和文件卷(volume)等。 逻辑结构可分为两大类:字符流式的无结构文件和记录式的有结构文件。
  • 66. 文件类型文件系统 文件管理程序和所管理的全部文件 最常用的一些文件类型是: .exe 可执行文件 .lib静态库文件, .dll动态库文件, .ocx 组件文件 .cpp C++源程序文件 .java Java源程序文件 .html 网页文件 .wav 声音文件 .jpg 图片文件 .doc Word文件 .ini初始化文件 .mdb Access数据库文件 .log日志文件 .chk磁盘整理文件
  • 67. 文件的组织结构文件管理涉及文件组织和文件操作两个问题。 文件组织形式有两种视图: 文件的逻辑结构,用户按文件的逻辑结构组织自己的文件信息; 文件的物理结构,文件系统是按不同的物理结构对文件信息进行组织和管理的。
  • 68. 使用外存储器的思路用户使用内存储器采用逻辑地址(或相对地址)?内存物理地址:32位二进制码 内存逻辑地址:变量名、标号用户使用外存储器同样应采用“逻辑地址”?外存物理地址:磁头号+磁道号+扇区号 外存逻辑地址:文件路径名 以文件为单位使用外存储器,通过文件名来存取信息,实现按名存取。
  • 69. 文件的目录结构文件组织体系中还包括文件的目录组织结构。上面讲到,用户使用的是文件的逻辑结构,系统使用的是文件的物理结构,在两种不同的组织结构之间似乎应该有衔接的纽带。肯定地说,是有一个衔接的纽带,那就是——文件的目录结构。 通过文件的目录结构,将文件的逻辑结构和文件的物理结构联系在了一起。
  • 70. 在文件系统中,每一个文件所包含的信息可划分为两部分。一部分称为特征信息,另一部分称为实际信息。 实际信息也就是文件中的具体数据内容,属于文件的主体部分,是文件本身原有信息。 特征信息包括文件的名称、日期、长度等,是文件系统为了管理控制每个文件所附加的信息,又称目录信息。 目录信息文件实际内容文件结构
  • 71. 文件控制块(FCB)在文件系统中采用文件控制块FCB来管理文件。一般文件系统的FCB包括了文件的特征信息,如文件名、文件类型、存储位置、长度、访问权限、文件建立日期和时间等。 在文件系统中,每个文件在FCB中都有一个目录项。
  • 72. MS-DOS目录项内容 字节地址 字节数 内容说明0~7H 8 文件主名8~AH 3 文件扩展名BH 1 文件属性C~15H 10 DOS保留区,未用 16~17H 2 文件建立、修改时间 18~19H 2 文件建立、修改日期 1A~1BH 2 文件首簇号、首地址 1C~1FH 4 文件长度
  • 73. UNXI目录项内容 目录项标识 目录项含义文件属性 文件属主文件属组文件大小文件联接数文件数据区索引 最近访问时间文件访问时间 文件创建时间 i-mode i-uid i-gid i-size i-nlike i-addr[40] i-atime i-mtime i-ctime
  • 74. 在文件系统中,块(block)是存贮介质上连续信息所组成的一个区域,它是计算机内外存交换信息的基本单位。 从磁盘读取数据时,以块为单位将文件信息调入内存缓冲区,然后,进一步从中筛选出指定数据。 往磁盘写入数据时,先将文件数据保存在内存缓冲区中,当形成一块后,一次将其写入磁盘。 问题:一个数据块应为多大? 分析:若一个块很小时,它调入内存后筛选的时间会缩短,但产生的问题是内外存交换信息的次数增加,因此,增加了数据读取时间。反之,若一个块太大,则占用内存空间会过大,同时,筛选数据时间加长。 结论:恰当确定块的大小是很重要的,不同的操作系统块的大小可能不同。块的概念文件磁盘内存缓冲区使用区
  • 75. 文件系统中的特征信息集中组织,而文件的主体部分则按链表方式组织。按照这种组织结构,一个文件在磁盘上占用的空间一般不是连续的物理记录。通过设置指针的方式,将不连续的物理记录“链”成一串,从而可访问到整个文件的内容。上图是链表结构的文件组织示意。设一个文件为:abc.txt 长度4100byte1~1024 1025~2048 2049~3072 3073~4100目录项文件组织结构示例 块 块 块 块
  • 76. 人机接口管理 主要任务:用户与操作系统之间的桥梁,通过人机接口,用户只需进行简单操作,就能实现复杂的应用处理。 2种类型: 命令接口。用户通过交互命令、图形界面或网络界面直接对(网络)计算机进行操作。 间接或程序接口。供用户以程序方式进行操作。程序员使用操作系统或第三方厂商提供的应用程序设计接口API(Application Programming Interface),来调用系统提供的例行程序,实现既定的操作。
  • 77. 人机接口管理应用程序设计Windows图形用户接口(GUI) 窗口 消息 Widows API MFC
  • 78. 字符界面的COPY命令实现#include #include int main(int argc, char *argv[]) { char ch; if(argc!=3) { cout << "Usage: ProgramName \n"; return 1; } ifstream in(argv[1], ios::in | ios::binary); ofstream out(argv[2],ios::binary); if(!in) { cout << "Cannot open file."; return 1; } if(!out) { cout << "Cannot open file."; return 1; } while(in) { // in will be false when eof is reached in.get(ch); out << ch; } return 0; }
  • 79. 图形界面的COPY命令实现◈建立对话框程序 ◈添加两个静态文本控件 ◈添加两个编辑控件,并命名 ◈添加命令按钮控件,并编辑函数 UpdateData(); char ch; ifstream in(m_sin, ios::in | ios::binary); ofstream out(m_sout,ios::binary); if(!in) { MessageBox("不能打开文件","错误",MB_OK); return; } if(!out) { MessageBox("不能打开文件","错误",MB_OK); return; } while(in) { in.get(ch); out << ch; } ◈编译连接运行
  • 80. 小结操作系统功能 计算机系统资源 逻辑与物理 程序、进程与线程 工作状态 算法与技术