1 / 84

软件开发技术基础

软件开发技术基础. 第 3 章 操作系统及程序设计 讲授教师:刘志强. 主 要 内 容. 操作系统及其功能 进程管理应用程序设计 内存管理应用程序设计 设备与文件管理应用程序设计 人机接口管理应用程序设计. 提出问题. 计算机系统由 “ 谁 ” 来控制、指挥? 什么是操作系统? 一般的管理涉及到的问题(教学管理;教师、学生、课程名表管理;管理策略;监控调度; …… ) 计算机系统有哪些资源? OS 怎样管理资源?用计算机管理系统资源,将如何处理?(计算机只能处理数据。因此,任何问题要让计算机处理必须数字化, …… ) 管理、调度策略?(排队策略 …… ).

zona
Download Presentation

软件开发技术基础

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 软件开发技术基础 第3章 操作系统及程序设计 讲授教师:刘志强

  2. 主 要 内 容 • 操作系统及其功能 • 进程管理应用程序设计 • 内存管理应用程序设计 • 设备与文件管理应用程序设计 • 人机接口管理应用程序设计

  3. 提出问题 • 计算机系统由“谁”来控制、指挥? • 什么是操作系统? • 一般的管理涉及到的问题(教学管理;教师、学生、课程名表管理;管理策略;监控调度;……) • 计算机系统有哪些资源?OS怎样管理资源?用计算机管理系统资源,将如何处理?(计算机只能处理数据。因此,任何问题要让计算机处理必须数字化,……) • 管理、调度策略?(排队策略……)

  4. 教学管理实体模型示意图 性别 职称 院系 班级 性别 姓名 学生 教师 姓名 课程号、课程名 教师编号 学号 N 教学 1 学习 课程号 课程号 N 分数 M 教师编号 学号 课程 课程名 课程号 学时 学分

  5. 教学管理模型的数据结构 教师简况表 学生简况表 学习成绩表 教师授课表 课程名称表

  6. 教学管理模型的数据表格 教师简况数据表 学生简况数据表 教师授课数据表 学习成绩数据表 课程名称数据表

  7. 计算机资源管理模型 存储管理 进程管理 操作系统 文件管理 设备管理

  8. 资源管理模型的数据表格 进程控制块 进程标志 状态 地址 存储区 家族史 进程1运行 8E2A 3K …… 进程2就绪 5F10 100K …… 进程3等待 1EFA 80K …… …… 进程n就绪 3EE0 2M…… 内存分区表 区号 长度 起始地址 状态 分区1 25K 1D4B 已分 分区2 5K 200B 未分 …… 分区n 18K EF20 已分 操作系统 文件系统目录表(DOS) 设备管理数据基 文件名 属性 长度 入口地址 …… file1只读 103K 701E …… file2写 3087 5F10 …… File3执行 18091 4DA1 …… …… 名称 描述 SDT 系统设备控制表 DCT 设备控制表 COCT 控制器控制表 CHCT 通道控制表 filen只读 30168 100B……

  9. 日常生活中的排队策略 • 日常生活中为解决排队问题,有哪些排队策略呢? • 先来后到策略(一般性) • 优先级别高的优先策略(特殊性) • 不同行业中的优先策略 • “绿色”通道 • 执行公务的军警优先 • 残疾人通道 • 孕妇、老人专座 • “Ctrl+Alt+Del”中断优先 • ……

  10. 本章目标 • 《大学计算机基础 》为先修课程 • 回答了:操作系统在计算机中起的作用和它能干什么 • 未回答:如何干、又如何在操作系统下编写程序 • 本课本章 • 不对操作系统的原理作深入的介绍,但以它的几项重要功能为主线,以C++为工具,揭示了一部分操作系统“内幕”,使读者对操作系统的工作原理有进一步的了解,同时对程序设计语言的应用有所加强。

  11. 操作系统基本概念 计算机系统 = 计算机硬件 + 计算机软件 计算机硬件 是构成计算机系统的物理部 件和设备的总称。硬件的核 心是主机;主机的核心是CPU。 计算机软件 是构成计算机系统的逻辑部 件及文档资料的总称。软件的 核心系统软件;系统软件的核 心是操作系统。

  12. 计算机系统平台 • 计算机系统是由硬件和软件组成的。 • 硬件是物理设备和器件的总称。硬件是用来完成信息变换、信息存储、信息传输和信息处理的物质基础。 • 软件是计算机程序及相关文档的总称。软件是用来描述实现数据处理的规则和流程。 • 没有安装软件的计算机被称为“裸机”,而裸机是无法进行任何工作的。

  13. 为什么要有操作系统? • 从用户角度来看,计算机系统应该是一个稳定的、对用户友好、便于操作的平台。 对计算机我一窍不通,如何进行操作!!? • 但是,实际上用户对硬件直接进行操作是极其困难、甚至是不可能的。 • 怎么办?……

  14. 操作系统和虚拟计算机 用户 打印2份报告! • 用户面对的是一个整体的计算机系统,分为虚拟机和物理机两个部分。 • 用户实际操作的是虚拟机,物理机是由OS管理和操作的。 • 优点:将复杂的物理操作剥离并下移,交给OS去处理。

  15. 操作系统的两大基本职能 • 面向机器 管理计算机;OS用来更有效地管理和分配系统的硬、软件资源,使得其能够发挥更大的作用。提高系统效率。 • 面向用户 使用计算机;提供人机界面,用户通过OS,无需了解计算机软、硬件的有关细节就能方便地使用计算机。

  16. 计算机资源 硬件设备 计算机 资源 文件 数据库 其他用户 内存单元 远程用户 应用程序

  17. 一、 操作系统及其功能 • 操作系统的发展 • 手工操作、批处理、多道程序系统和分时操作系统等四个阶段,其中分时操作系统为目前最为流行 • 实用的操作系统 • Windows X • DOS • Linux

  18. 1. 操作系统的定义 • 定义 • 一组控制和管理计算机软、硬件资源,为用户提供便捷使用计算机的程序的集合 • 作用 • 管理计算机和使用计算机 • 特征 • 并发性、共享性、虚拟性和不确定性 • 计算机系统组成 • 硬件、操作系统、其他系统软件、应用软件和用户接口

  19. 2.操作系统的功能 • CPU与进程管理 • 对处理器时间进行合理分配、对处理器运行实施有效的管理 • 存储器管理 • 对存储器进行分配、保护和扩充 • 设备管理 • 根据确定的设备分配原则对设备进行分配,使设备与主机能够并行工作,为用户提供良好的设备使用界面 • 文件管理 • 有效地管理文件的存储空间,合理地组织和管理文件系统,为文件访问和文件保护提供更有效的方法及手段 • 用户接口 • 用户操作计算机的界面,或称为用户界面,通过用户接口,用户只需进行简单操作,就能实现复杂的应用处理

  20. 进程管理 • 进程管理的核心是进程的控制和调度。进程自投入运行时起,即交由进程调度程序管理。 • 根据什么标准选择怎样的进程投入运行?如何管理不同类型进程的资源? 采用什么策略进行分配资源? … • 这些都是进程管理的问题。

  21. 文件与文件系统 • 文件系统。顾名思义是管理和操作文件的系统。与人工管理文件系统一样,它要解决文件的组织管理(分类编目),在此基础上实现文件操作。 • 文件系统功能。从OS管理资源的角度看,文件系统应具有以下功能: • 解决如何组织和管理文件。 • 实现文件的“按名存取”操作机制。 • 提供文件共享功能及保护措施。 • 实现用户要求的各种操作。包括文件的创建、修改、复制、删除等。

  22. 文件系统功能图 文件系统 文件组织 文件操作 文件存取 文件控制 逻辑结构 文件开、关、 顺序存取 文件共享 流式文件 增、删、改、 随机存取 文件保护 记录式文件 复制、更名 …… …… 按键存取 …… …… 物理结构 连续文件 串联文件 索引文件 Hash文件 目录结构

  23. 存储管理的主要功能 • 存储分配 主存的分配和回收。为管理主存而设置的相应的组织机制,记录主存的状态信息、已分配、未分配块、分配策略等。 • 存储容量 当用户所需存储空间大于可用主存容量时,系统采用存储器的多级机制、虚拟存储、自动覆盖等技术。 • 地址变换 程序语言的符号地址空间到进程的物理地址的转换。 • 存储保护 在多道程序系统中,系统进程和用户进程间、用户和用户进程间的存储空间的保护。

  24. 存储空间的分配和释放 • 在计算机中,无论是系统程序、还是用户程序,无论是数据、还是文件,凡要处理必须装入主存。如何管理分配存储空间? • 需要考虑和解决的问题: 在多层次存储结构中,如何确定存储位置? 系统程序和用户程序如何管理? 大于主存的程序能否运行? 多道程序处理系统如何管理各个程序的存储空间? 如何分配存储器?采用何种分配策略?

  25. 存储空间的地址变换 • 用户在程序中使用的是符号名,编译系统在产生的目标程序中使用的是逻辑地址(相对地址),而可执行程序在计算机中运行时使用的是物理地址(绝对地址)。由程序的符号名空间到运行时真正使用的物理地址空间转换叫“地址转换”,也称为程序的重定位。 int a; float b; char c; 0 X a的绝对地址 2FF0 a的逻辑地址 b的逻辑地址 c的逻辑地址 3EC0 b的绝对地址 c的绝对地址 4DAA 源程序符号空间 目标程序地址空间 进程的存储空间

  26. 存储空间的分区保护 • 在多道程序系统的主存中,为了保护系统程序的安全,系统程序和用户程序实际使用的区域是隔开的。 • 这种分割是靠硬件实现的。用户程序只能使用用户区域的存储空间。 主存空间的分区 保护示意图 系统 区域 用户 区域

  27. 主存空间的扩充 • 主导思想是: 如何在有限的主存空间中,处理大于主存的程序。 • 扩充主存常用的有效方法: • “自动覆盖”技术 • “交换” 技术 • “虚拟存储”技术

  28. 设备管理 • 计算机系统中的设备通常指I/O(输入/输出)设备。由于计算机技术的飞速发展,I/O设备的种类越来越多,设备管理和分配也越来越复杂。与设备管理有关的概念有: • I/O设备分类 • I/O设备与CPU的通信方式 • 设备管理中使用的数据结构 • I/O设备分配的策略

  29. 设备管理的任务 1)外部设备中断处理 2)外部设备接口程序设计和设备驱动 3)外部设备的分配与释放 4)虚拟设备的实现和管理

  30. 用户接口类型 • 命令接口,用户通过交互命令方式直接或间接地对计算机进行操作. DOS:是纯命令行输入方式,Windows:鼠标操作方式 • 程序接口,供用户以程序方式进行操作,或API(Application Programming Interface),用户通过API函数可以调用系统提供的例行程序,实现既定的操作。 DOS:中断服务功能,Windows:Windows API函数

  31. DOS与Windows操作使用方法简介 • DOS 常用命令:HELP DIR CLS CD RD COPY … • Windows 最常用的功能是:桌面、浏览器、资源管理器、我的电脑、网上邻居、控制面板(Control)、任务管理器(taskmgr)、Word、Excel、VC++,记事本(Notepad),写字板(write)…

  32. DOS 编程模式 • DOS是微机系统配备的主流操作系统之一,是单用户、单任务的磁盘操作系统。 • DOS提供功能服务的两种方式: • 键盘命令 • 程序执行方式 • DOS的主要功能: • 管理各种设备 • 管理CPU • 管理各种文件 • 管理内存 • 支持用户的各种命令和程序 • 支持网络环境

  33. DOS系统结构 • DOS由4个模块构成: • 引导模块(BOOT引导区)用于启动DOS时自动引导、装入DOS系统到内存。 • DOS内核模块(MSDOS.SYS)由两部分组成:内核初始化程序DOS-INIT和DOS中断服务程序。前者仅用于启动DOS;后者则是真正DOS的内核,提供系统的中断服务功能。 • DOS I/O接口模块(IO.SYS)是DOS的I/O设备处理程序.它与ROM-BIOS一起组成I/O处理的服务体系,完成所有的I/O操作. • 命令管理模块(Command.com)主要负责接受并处理各种输入命令.它是直接面向用户操作的。

  34. DOS模块结构图 Command常驻部分 BOOT模块 COM-INIT初始化 程序 DOS 系 统 Command模块 Command暂驻部分 内核初始化程序 DOS-INIT MD-DOS模块 DOS中断服务程序 IO初始化程序 SYS-INIT IO模块 标准设备驱动程序

  35. DOS的层次结构 用户的操作 键盘命令 用户程序 Command.com MSDOS.SYS系统功能 IO.SYS 设备驱动 ROM-BIOS 硬件系统

  36. DOS与Windows操作系统程序接口简介 • DOS 单用户单任务的磁盘操作系统 功能体现在系统提供的DOS和BIOS层上,借助于高级语言和汇编语言,并通过调用中断服务程序,可以完成大部分编程工作。 • Windows 一种多用户多任务、图形化的新型操作系统

  37. Windows NT体系结构 登录进程和会话管理器 事件日志、调度服务、SQL Server Win32 MS-DOS程序和Win32程序 进程线程管理、I/O和内存管理 窗口和绘制 将内核、设备驱动程序和执行体分离以适应不同的平台 将I/O函数调用转换为I/O请求 线程调度、中断和异常处理

  38. 窗口

  39. 句柄(Handle) • 句柄是一个4字节长度的惟一数,用以标识和区别不同的对象类型。 • 句柄是Windows编程中的一个重要概念,编写Windows应用程序总是和各种句柄打交道。 • Windows为每个应用程序建立一张表,实例(运行的程序)句柄就好象是该表中的一个索引。

  40. 消息 • Windows程序是以事件为驱动、消息机制为基础 • 消息定义:由用户操作而向应用程序发出的信息,也包括操作系统内部产生的消息。 • 消息类型:windows消息,命令消息和控件通知 WM_LBUTTONDOWN 、WM_CHAR • 消息结构:消息号和参数组成 typedef struct tagMSG{ HWND hwnd; 窗口句柄,为NULL,则可检索所有驻留在消息队列中的消息 UINT message; 消息值,由windows.h头文件中的宏定义来标识 WPARAM wParam; 包含有关消息的附加信息,不同消息其值有所不同 LPARAM lParam; DWORD time;指定消息送至队列的时间 POINT pt; 指定消息发送时屏幕光标的位置, POINT也是一个结构体 }MSG;

  41. Windows数据类型

  42. 二、进程管理应用程序设计 • CPU与进程管理的相关概念 • Windows操作系统的进程和线程管理 • 进程和线程的应用

  43. CPU与进程管理 • 主要任务 • 对处理器的时间进行合理分配、对处理器的运行实施有效的管理 • 程序的概念 • 一个静态概念,代表有严格时间顺序的可执行指令序列,输入、处理和输出三部分组成指令序列特征 • 并发性、共享性、虚拟性和不确定性 • 进程的概念 • 程序的一次执行。系统进行资源调度和分配的独立单位

  44. CPU与进程管理(2) • 进程与程序的主要区别 • 进程是动态的,而程序是静态的 • 进程的特点 • 动态性、并发性、独立性、异步性、结构性和制约性 • 进程的状态 • 就绪状态、运行状态和停止状态

  45. CPU与进程管理(3) • 进程数据结构 • 进程描述信息 • 进程标识符(process ID),唯一,通常是一个整数;进程名,通常基于可执行文件名(不唯一);用户标识符(user ID);进程组关系(process group) • 进程控制信息 • 当前状态;优先级(priority);代码执行入口地址;程序的外存地址;运行统计信息(执行时间、页面调度);进程间同步和通信;阻塞原因 • 资源占用信息 • 虚拟地址空间的现状、打开文件列表 • CPU现场保护结构 • 寄存器值(通用、程序计数器PC、状态PSW,地址包括栈指针

  46. CPU与进程管理(4) • 多个进程并发执行 • 同步和互斥 • 协调点

  47. CPU与进程管理(5) • Windows进程的建立 • 函数CreateProcess • 使一个程序运行 • 使用C的spawnlp函数 • 使用Win API 函数ShellExecute • ……

  48. 例、程启动两个子进程 • _spawnlp函数格式 • “process.h” • int _spawnlp( int mode, const char *cmdname, const char *arg0, const char *arg1, ... const char *argn, NULL ); • 其中mode表示运行方式, • Cmdname 为进程名, • arg0,…argn 为进程的若干个参数, • NULL 为终止符。 • 返回值: • -1 Error • 其他:进程返回码

  49. 例 显示当前系统所有进程 • PROCESSENTRY32 结构体格式 typedef struct tagPROCESSENTRY32 { DWORD dwSize; DWORD cntUsage; DWORD th32ProcessID; //进程编号 DWORD th32DefaultHeapID; DWORD th32ModuleID; DWORD cntThreads; DWORD th32ParentProcessID; LONG pcPriClassBase; DWORD dwFlags; char szExeFile[MAX_PATH]; //进程执行文件名 } PROCESSENTRY32;

  50. 创建进程 • 在Windows中,启动一个程序时,Windows通过函数CreateProcess建立一个进程,当程序结束时,通过TerminateProcess函数推出程序执行。

More Related