操作系统结构.

Slides:



Advertisements
Similar presentations
1 Java 语言程序设计 计算机系 鲍金玲. 2 引子 甲骨文 甲骨文是全球最大的信息管理软件及服务供应商,成立于 1977 年,公司总部 设在美国加利福尼亚州的红木城( Redwood Shores ),全球员工达 名, 包括 名开发人员、 7500 多名技术支持人员和.
Advertisements

Web Maple— 云端计 算 数学学院刘海洋 胡婷婷. 需求 什么是 Web Maple ? Maple : “ 数学家的软件 ” 符号和数值计算 动态编程语言 集成编辑环境与图形输出 Web Maple :网页上的数学家 完整的 Maple 功能 云端计算 网页独特的输入输出格式.
第 3 章操作系统基础 3.1 操作系统概述 3.2 操作系统的功能模块 3.3 典型操作系统概述.
1 I/O 设备访问方式和类型. 2 Overview n The two main jobs of a computer: l I/O (Input/Output) l processing n The control of devices connneted to the computer is.
计算机基础 与应用案例教程 第一篇 基础理论篇 第4章 计算机软件系统.
第6章 计算机网络基础 信息技术基础.
21世纪全国高职高专 计算机系列实用规划教材 计算机网络技术基础 主 编: 杨瑞良 李 平 副主编: 邱 涛 李明龙.
DATE: 14/10/2009 陳威宇 格網技術組 雲端運算相關應用 (Based on Hadoop)
Chapter 3: Operating-System Structures操作系统结构
Foundations of Computer Science
第四章 電腦軟體 課前指引 實體的電腦裝置,我們稱之為「硬體」(Hardware),至於軟體則是個抽象的概念,軟體是經由人類以各種不同的程式語言撰寫而成,以達到控制硬體、進行各種工作的抽象化(例如文書處理)等動作。有些讀者經常迫不及買了一台新電腦,就以為可以開始使用!事實不然,一部配備齊全的電腦,如果沒有合適的軟體來控制與搭配,絕對也是英雄無用武之地。一般來說,我們將軟體分「系統軟體」(System.
第3届全国高校 软件定义网络(SDN)应用创新开发大赛
第七章 操作系统接口 7.1 联机用户接口 7.2 Shell命令语言 7.3 系统调用 7.4 UNIX系统调用 7.5 图形用户接口.
中央广播电视大学开放教育试点课程 计算机操作系统.
操作系统原理 Principles of Operating System
前言 1.课程安排: 第一章 操作系统引论(7学时) 第二章 进程管理(14学时) 第三章 处理机调度与死锁(10学时)
8.1 系統軟件、應用軟件和驅動程序 電腦軟件 是使電腦處理指定工作的一連串指令 大致可分大為三類: 驅動程序 系統軟件 應用軟件.
大專院校校園e 化 PKI、智慧卡應用與整合.
第五章 设备管理 5.1 I/O系统 5.2 I/O控制方式 5.3 缓冲管理 5.4 设备分配 5.5 设备处理 5.6 磁盘存储器管理.
“服务器服务于Internet”报告会 倪光南 1999年7月6日
Chapter 13 輸入/輸出系統 (I/O Systems)
2012/11/12 Virtual Machine.
第一章 引论 1.1操作系统的概念 计算机系统: 计算机硬件 计算机软件 计算机硬件:运算器、控制器、存储器、输入设备和 输出设备
作業系統的結構 日期 : 2018/9/17.
操作系统结构 主讲教师:夏莹杰
網路基本概念 本章主要是為讀者建立有關網路的基本知識, 作為後續章節的基礎。首先我們會說明網路的基本概念, 接著介紹網路的各種類型與相關的作業系統, 最後則是介紹 OSI 與 DoD 等兩種網路模型, 讓讀者能進一步了解網路運作的方式。
3-1 電腦作業系統的功能與類型 3-2 Windows XP的基本操作 3-3 Windows XP的檔案管理
課程名稱:計算機概論 授課老師:李春雄 博士
佐登妮斯大樓監控系統簡介 圓 泰 科 技 1.
第一章 计算机基础知识 计算机基础知识.
计算机应用基础 第二章 操作系统基础 2018/11/16.
第4章 作業系統的介紹及操作.
第8章作業系統.
分散式資料庫管理系統 與主從式系統 資料庫系統設計實務與管理,5e
作 業 系 統 第三組 楊育翰 顏瑞霖.
Linux 圖形操作介面 GUI -- X-window 與 Webmin
虛擬化基本概念.
Operating System Concepts 作業系統原理 CHAPTER 2 系統結構 (System Structures)
Android 课程讲义 智能手机开发
主題九 認識作業系統.
作業系統 家庭和小型企業網路– 第二章.
陈香兰 助教:陈博、李春华 Spring 2009 嵌入式操作系统 陈香兰 助教:陈博、李春华 Spring 2009.
網路資源的建立--LINUX系統 國立東華大學電算中心 陳鴻彬.
Introduction to OpenGL (1)
Chapter 4 多執行緒 (Multi Thread)
1-1-1作業系統的功能 提供使用者操作介面 提供程式執行環境 控制輸入\輸出程序 分配系統資源 管理與維護磁碟中的檔案
和諧社區資訊服務推廣計畫 -軟體雲端社區 資訊研習營
作業系統 (Operating System)
第三章 用户接口与作业管理 用户与操作系统的接口 批处理操作系统的作业管理 作业的基本概念:作业、作业步、作业流 交互式系统作业管理
Operating System Principles 作業系統原理
凌宁 系统工程师 亚洲区嵌入式系统事业群 微软(中国)有限公司
第12章 计算机病毒防范技术 本章学习目标: 掌握病毒的分类与特征 掌握病毒检测与防范的基本知识 了解计算机病毒防范技术的发展趋势
7.1.1 设备管理的功能(P95) 分配设备:按设备的不同类型和操作系统选用的算法分配。包括分配相应的通道、设备控制器以及对未分配到的任务或怍业进行排队等; 控制和实现真正的输入输出操作。包括通道程序控制、启动设备、及时响应及处理中断讯号等; 对输入输出缓冲区进行管理。例如逻辑名的管理,多个缓冲区的分时以及串并行操作,同类多个外部设备的均衡工作,避免“忙的忙”和“闲的闲”;
TinyOS 石万兵 2019/4/6 mice.
作業系統 第三章 作業系統結構.
第1章 网络操作系统概述.
會計資訊系統 大帳省財務庫存管理系統(Beyond) 士林高商(資料來源:啟發出版社) 簡報者:黃瑞萍老師.
中国科学技术大学计算机系 陈香兰 2013Fall 第七讲 存储器管理 中国科学技术大学计算机系 陈香兰 2013Fall.
虚 拟 仪 器 virtual instrument
中国科学技术大学计算机系 陈香兰 Fall 2013 第三讲 线程 中国科学技术大学计算机系 陈香兰 Fall 2013.
操作系统的结构和硬件支持 第2章 操作系统的结构和硬件支持.
靜宜大學專用 PowerPoint 檔案 數位教材
導 論 教學投影片.
多媒体技术 中南大学信息科学与工程学院 黄东军.
第一章 操作系统引论 1.1 操作系统的目标和作用 1.2 操作系统的发展过程 1.3 操作系统的基本特性 1.4 操作系统的主要功能
第12章 Linux與 嵌入式uClinux系統
Operating System Software School of SCU
课程介绍 1、嵌入式系统开发先序课程; 2、共32+8课时: 3、本期采用混合式教学成绩计算方式:
Presentation transcript:

操作系统结构

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

操作系统服务 用户接口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

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语言编译器

End