操作系统结构 主讲教师:夏莹杰 xiayingjie@zju.edu.cn.

Slides:



Advertisements
Similar presentations
高校教师、高级项目经理 任铄 QQ : 第一章 操作系统引论 1.1 操作系统的目标和作用 1.2 操作系统的发展过程 1.3 操作系统的基本特性 1.4 操作系统的主要功能 1.5 OS 结构设计.
Advertisements

高级服务器设计和实现 1 —— 基础与进阶 余锋
第 3 章操作系统基础 3.1 操作系统概述 3.2 操作系统的功能模块 3.3 典型操作系统概述.
Linux 系统. 操作系统发展需求 1 没有操作系统 2 简单批处理操作系统 3 多道程序设计的批处理 4 多道程序设计的分时操作系统 5 多处理机并行系统 6 网络操作系统 7 分布式操作系统.
LSF系统介绍 张焕杰 中国科学技术大学网络信息中心
操作系统概念 第三章:操作系统结构.
Foundations of Computer Science
第四章 電腦軟體 課前指引 實體的電腦裝置,我們稱之為「硬體」(Hardware),至於軟體則是個抽象的概念,軟體是經由人類以各種不同的程式語言撰寫而成,以達到控制硬體、進行各種工作的抽象化(例如文書處理)等動作。有些讀者經常迫不及買了一台新電腦,就以為可以開始使用!事實不然,一部配備齊全的電腦,如果沒有合適的軟體來控制與搭配,絕對也是英雄無用武之地。一般來說,我們將軟體分「系統軟體」(System.
Chap 3 Operating-System Structures 操作系统结构
操作系统结构.
实用操作系统概念 张惠娟 副教授 1.
8.1 系統軟件、應用軟件和驅動程序 電腦軟件 是使電腦處理指定工作的一連串指令 大致可分大為三類: 驅動程序 系統軟件 應用軟件.
基于解释性语言的手机跨平台架构 Sloan Yi. Qt MTK.
Oracle数据库 Oracle 子程序.
“服务器服务于Internet”报告会 倪光南 1999年7月6日
Chapter 13 輸入/輸出系統 (I/O Systems)
计算机基础知识 丁家营镇九年制学校 徐中先.
作業系統的結構 日期 : 2018/9/17.
Kvm异步缺页中断 浙江大学计算机体系结构实验室 徐浩.
LSF系统介绍 张焕杰 中国科学技术大学网络信息中心
課程名稱:計算機概論 授課老師:李春雄 博士
计算机应用基础 第二章 操作系统基础 2018/11/16.
OpenMP简介和开发教程 广州创龙电子科技有限公司
第4章 作業系統的介紹及操作.
作 業 系 統 第三組 楊育翰 顏瑞霖.
Operating System Concepts 作業系統原理 CHAPTER 2 系統結構 (System Structures)
存储系统.
大学计算机基础 典型案例之一 构建FPT服务器.
SVN服务器的搭建(Windows) 柳峰
走进编程 程序的顺序结构(二).
辅导课程六.
第11章:一些著名开源软件介绍 第12章:服务安装和配置 本章教学目标: 了解当前一些应用最广泛的开源软件项目 搭建一个网站服务器
1-1-1作業系統的功能 提供使用者操作介面 提供程式執行環境 控制輸入\輸出程序 分配系統資源 管理與維護磁碟中的檔案
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
作業系統 (Operating System)
Online job scheduling in Distributed Machine Learning Clusters
逆向工程-汇编语言
CPU结构和功能.
Windows 7 的系统设置.
DevDays ’99 The aim of this mission is knowledge..
Instructions: Language of the Machine
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
三:基于Eclipse的集成开发环境搭建与使用
Unit 11.Operating System 11.1 What’s OS 11.2 Related Courses
内容摘要 ■ 课程概述 ■ 教学安排 ■ 什么是操作系统? ■ 为什么学习操作系统? ■ 如何学习操作系统? ■ 操作系统实例
C语言程序设计 主讲教师:陆幼利.
微机系统的组成.
_01Win32简介与IDE简介 本节课讲师——void* 视频提供:昆山爱达人信息技术有限公司 官网地址:
操作系统的结构和硬件支持 第2章 操作系统的结构和硬件支持.
靜宜大學專用 PowerPoint 檔案 數位教材
实验七 安全FTP服务器实验 2019/4/28.
计算机网络与网页制作 Chapter 07:Dreamweaver CS5入门
本节内容 Win32 API中的宽字符 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
iSIGHT 基本培训 使用 Excel的栅栏问题
_13简单的GDI绘图操作 本节课讲师——void* 视频提供:昆山爱达人信息技术有限公司 官网地址:
本节内容 文件系统 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
临界区问题的硬件指令解决方案 (Synchronization Hardware)
OpenStack vs CloudStack
本节内容 Windows线程切换_时钟中断切换 视频提供:昆山滴水信息技术有限公司 官网地址: 论坛地址: QQ交流 :
第一章 操作系统引论 1.1 操作系统的目标和作用 1.2 操作系统的发展过程 1.3 操作系统的基本特性 1.4 操作系统的主要功能
Google的云计算 分布式锁服务Chubby.
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
本节内容 动态链接库 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
Operating System Software School of SCU
本节内容 进程 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
第四章 UNIX文件系统.
FVX1100介绍 法视特(上海)图像科技有限公司 施 俊.
入侵检测技术 大连理工大学软件学院 毕玲.
Presentation transcript:

操作系统结构 主讲教师:夏莹杰 xiayingjie@zju.edu.cn

内容 操作系统服务 用户与操作系统接口 系统调用 操作系统结构

操作系统服务 用户接口User Interface 命令行接口Command-Line Interface (CLI), 图形用户接口Graphics User Interface (GUI) 批处理 Batch 程序执行 - 调入一个程序进入内存并运行之的系统能力 I/O操作 - 由于用户程序不能直接执行I/O操作,操作系统必须提供完成I/O操作的手段 文件系统操作 – 程序能够读、写、创建和删除文件

操作系统服务 通信 - 运行的进程间在同一计算机或由网络连接的不同系统中交换信息。通过共享存储器或消息传递实现 出错检测 – 通过探测在CPU与内存硬件中,在I/O设备中,或在用户程序中的错误,确保正确运算 资源分配- 把资源分配给多个用户或多个同时运行的作业 计帐- 跟踪和记录用户对资源的使用,用于帐单和统计 保护 - 确保对资源的所有访问均在控制中

操作系统的用户界面(接口) 操作系统与用户接口 命令接口Command Interface 程序接口Program Interface (系统调用) 命令接口 命令行用户接口,文本界面 图形用户接口

操作系统的用户界面(接口) 命令行用户界面(Command line User Interface CUI) 键盘输入 DOS、Linux、UNIX 图形用户界面(Graphic User Interface GUI) 鼠标输入 MacOS、OS/2、WINDOWS、Linux等 程序接口 系统调用( System Calls)、API 系统调用和API的区别?

系统调用 系统调用提供了进程与操作系统之间的接口 这些调用通常以汇编语言指令的形式提供 有些语言(如C, C++和Perl)已经取代了汇编语言而直接用于系统编程 向操作系统传递参数通常用三种方法 通过寄存器来传递参数 参数数量可能会比寄存器多 将参数存放在内存的块或表中,并将块的地址作为参数传递给寄存器 指针 将参数放在堆栈中,并通过操作系统弹出堆栈 不限制所传递参数的数量或长度

参数作为表传递

Example of Standard API Consider the ReadFile() function in the Win32 API—a function for reading from a file A description of the parameters passed to ReadFile() HANDLE file—the file to be read LPVOID buffer—a buffer where the data will be read into and written from DWORD bytesToRead—the number of bytes to be read into the buffer LPDWORD bytesRead—the number of bytes read during the last read LPOVERLAPPED ovl—indicates if overlapped I/O is being used

为什么需要系统调用 系统调用是内核向用户进程提供服务的唯一方法,应用程序调用操作系统提供的功能模块(函数)。 用户程序通过系统调用从用户态(user mode)切换到核心态(kernel mode),从而可以访问相应的资源。这样做的好处是: 为用户空间提供了一种硬件的抽象接口,使编程更加容易。 有利于系统安全。 有利于每个进程度运行在虚拟系统中,接口统一有利于移植。

系统调用的类型 进程控制:结束,中止,装入,执行,创建、终止进程等 文件管理:创建文件,删除文件,打开,关闭文件等 设备管理:请求设备,释放设备,读、写、重定位设备等 信息维护:读取时间或日期、设置时间或日期等 通信:创建、删除通信连接,发送、接收消息,传递状态信息等

c库中的printf() c库中的write() 系统调用、API和C库 应用编程接口(API)其实是一组函数定义,这些函数说明了如何获得一个给定的服务;而系统调用是通过软中断向内核发出一个明确的请求,每个系统调用对应一个封装例程(wrapper routine,唯一目的就是发布系统调用)。一些API应用了封装例程。 API还包含各种编程接口,如:C库函数、OpenGL编程接口等 系统调用的实现是在内核完成的,而用户态的函数是在函数库中实现的 调用printf() c库中的printf() c库中的write() sys_write()系统调用 应用程序 C库 内核

操作系统的设计 操作系统设计有着不同于一般应用系统设计的特征: 复杂程度高 研制周期长 正确性难以保证 最早Uinx是1400行代码; Windows xp有4000万行代码; fedroa core有2亿多行代码,Linux kernel 3.10有1700万行代码。 解决途径: 良好的操作系统结构 先进的开发方法和工程化的管理方法(软件工程) 高效的开发工具

操作系统的设计考虑 功能设计:操作系统应具备哪些功能 算法设计:选择和设计满足系统功能的算法和策略,并分析和估算其效能 结构设计:选择合适的操作系统结构 按照系统的功能和特性要求,选择合适的结构,使用相应的结构设计方法将系统逐步地分解、抽象和综合,使操作系统结构清晰、简单、可靠、易读、易修改,而且使用方便,适应性强

几种常见的操作系统结构 简单结构 层次化结构 单(宏)内核结构 微内核 模块(Modules) 虚拟机

简单结构 Simple Structure MS-DOS - 利用最小的空间提供最多的功能 没有被划分成模块

MS-DOS Structure

Traditional UNIX System Structure

UNIX系统结构 UNIX - 最初受到硬件功能的限制,它由两个独立的部分组成 内核 系统程序 包括系统调用接口之下和物理硬件之上的所有部分 内核通过系统调用提供文件系统、CPU调度、内存管理和其他操作系统功能。 系统程序 UNIX、Linux从另一个角度看也是单内核结构

层次结构 Layered Approach 操作系统分成若干层,每层建立在较低层之上。最底层(层0)是硬件,最高层(层N)是用户接口 分层法的主要优点是模块化。选择了分层,这样每层只能利用较低层的功能(或操作)和服务。 分层法与其他方法相比其效率稍差。

Layered Operating System

单/宏内核结构 Monolithic Kernels Structure Monolithic Kernels :the entire code of the kernel — including all its subsystems such as memory management, filesystems, or device drivers — is packed into a single file. Each function has access to all other parts of the kernel; Earliest and most common OS architecture (UNIX,MS-DOS) Every component of the OS is contained in the Kernel Examples: OS/360, VMS and Linux

微内核结构 Microkernel System Structure 这种方法将所有非基本部分从内核中移走,并将它们当做系统级程序和用户级程序来实现,用这种方法来构建操作系统 用户模块之间采用消息传递的方式进行通信

Microkernel System Structure (微内核结构) 优点 微内核易于扩展 易于提升OS至一个新的体系结构 更可靠(内核模式中运行的代码更少) 更安全 缺点 用户空间与内核空间的通信代价较高 Windows NT ... Windows 8、Mac OS、Mach、L4

Windows Kernel Windows NT 4.0 起,采用 microkernel 的架构 Kernel Mode CLIENT AP Network Service ... Display Service SERVER Heap Service File Service SEND REPLY User Mode Kernel Mode Micro Kernel Hardware Windows NT 4.0 起,采用 microkernel 的架构

模块 Modules 许多现代操作系统实现内核模块(kernel modules) 总之,模块类似于分层,但模块更具灵活性 用面向对象的方法 内核的组成部分相互分离 任务之间的交互通过已知的接口来实现 每个模块在内核中是按照需要可装载的 总之,模块类似于分层,但模块更具灵活性 Linux、Solaris、Mac OS X

Solaris Modular Approach

Mac OS X Structure

虚拟机 virtual machine 虚拟机采用了分层的方法。它将物理硬件和OS内核统一看作为硬件 虚拟机提供了与基本硬件相同的接口 通过利用CPU调度和虚拟内存技术,操作系统能创建一种幻觉,以至于进程认为有自己的处理器和自己的(虚拟)内存。 物理计算机共享资源以创建虚拟机 CPU调度能共享出CPU造成一种每个用户都有自己的处理器的感觉 假脱机和文件系统能提供虚拟读卡机和虚拟行式打印机 一个普通的用户分时终端提供虚拟机操作员终端的功能 virtual machine software: VMWARE、 VirtualBox 、Virtual PC

(a)Non-virtual Machine Virtual Machines (a)Non-virtual Machine (b)Virtual Machine

虚拟机的优缺点 通过完全保护系统资源,虚拟机提供了一个坚实的安全层 虚拟机允许进行系统开发而不必中断正常的系统操作 但虚拟机概念很难提供真实的硬件效果

习题分析 1、相对于单一内核结构,采用微内核结构设计和实现操作系统具有诸多好处,但是, 并不是微内核的优势。 1、相对于单一内核结构,采用微内核结构设计和实现操作系统具有诸多好处,但是, 并不是微内核的优势。 A.使系统更高效 B. 想添加系统服务时,不必修改内核 C. 使系统更安全 D. 使系统更可靠 2、操作系统中提供了一种进程间的通信机制,把一个进程的标准输出与另一个进程的标准输入连接起来,这种机制称为 A. 重定向 B. 管道 C. socket D. 共享内存

习题分析 3、为了在通用操作系统管理下的计算机上运行一个程序,需要经历几个步骤。但是, 不一定需要。 A.向操作系统预定运行时间 3、为了在通用操作系统管理下的计算机上运行一个程序,需要经历几个步骤。但是, 不一定需要。 A.向操作系统预定运行时间 B. 将程序装入内存 C. 确定起始地址,并从这个地址开始执行 D. 用控制台监控程序执行过程

习题分析 4、下列选择中, 不是操作系统关心的主要问题。 A. 提供保护和安全机制 B. 管理目录和文件 C. 提供应用程序接口 4、下列选择中, 不是操作系统关心的主要问题。 A. 提供保护和安全机制    B. 管理目录和文件 C. 提供应用程序接口    D. 提供JAVA语言编译器

习题分析

习题分析

作业 随堂练习 习题作业 http://jpkc.scezju.com/czxtyl/redir.php?catalog_id=105952 书后习题1.4、1.17、2.12、2.14 9月29日晚上12点前发邮件给TA(徐小高, 18942247086@163.com )。 文件名以“姓名+学号+专业”命名。

习题作业

习题作业

习题作业

End