操作系统书本慕课版本笔记

操作系统是配置在计算机硬件上的第一次软件,是对硬件的首次扩充

OS是现代计算机系统中最基本和最重要的系统软件。

1.1.1操作系统的目标

实现:方便性有效性可扩充性开放性

有效性的两层含义:1.提高系统资源的利用率2.提高系统的吞吐量

方便性和有效性是设计OS时的最重要的两个目标

可扩充性:OS从早期的无结构发展成模块化结构,进而发展成分层式结构,近年来OS已广泛采用微内核结构

开放性:遵循开放系统互连参考模型

1.1.2操作系统的作用

1.OS作为用户与计算机硬件系统之间的接口

用户通过3种方式使用计算机:命令方式、系统调用方式 、图形/窗口方式来实现自身与OS的通信,并取得OS服务

  1. OS作为计算机系统资源的管理者

在一个计算机系统中,通常含有多种硬件和软控资源,归纳起来分4类:

处理机、存储器、I/O设备以及信息

  1. OS实现了计算机资源的抽象

对于一个完全无软件的计算机系统,它向用户提供的仅是硬件接口(物理接口),用户必须对物理接口的实现细节有冲分的了解,这使得这物理机器难以被用户方便调用

在裸机上铺设I/O软件,隐藏I/O设备的具体细节,把覆盖了上述软件的I/O设备称为扩充机器或虚机器

1.1.3推动操作系统发展的主要动力

  1. 不断提高计算机系统资源的利用率

  1. 方便用户

  1. 器件不断更新换代

  1. 计算机体系结构的不断发展

  1. 不断提出新的应用需求

1.2操作系统的发展过程

20世纪50年代中期,出现第一个批处理系统,

20时间60年代中期,开发出多道批处理系统

不久又推出了分时系统,同时用于工业控制和武器控制的实时系统也相继问世

20世纪70-90年代,是VLSI和计算机体系结构大发展的年代,开发出来微机OS、多处理机OS、网络OS和分布式OS。

1.2.1未配置操作系统的计算机系统

从1945年诞生的第一台计算机,到20世纪50年代中期所出现的计算机,都属于第一代计算机,此时还未有OS,对计算机的全部操作都是由用户采取人工操作方式进行。

1.人工操作方式

人工操作方式的两个缺点:

  1. 用户独占全机

  1. CPU等待人工操作

人工操作方式严重降低了计算机资源的利用率,此即所谓的人际矛盾。

2.脱机I/O方式

为解决人机矛盾以及CPU和I/O设备之间速度不匹配的矛盾,20世纪50年代末出现了脱机I/O技术

主要优点:

  1. 减少了CPU的空闲时间

  1. 提高了I/O速度

1.2.2单道批处理系统

20世纪50年代中期,出现了第二代晶体管计算机,为了充分提高计算机的利用率,应尽量保持系统连续运行

缺点:系统中的资源得不到充分利用,此外,I/O设备的低速性也使CPU的利用率显著降低

1.2.3多道批处理系统

20世纪60年代中期,IBM公司生产了第一台小规模集成电路计算机IBM360(第三代计算机),并为它开发了OS/360,这是第一个能运行多道程序的批处理系统。

优缺点:

  1. 资源利用率高

  1. 系统吞吐量大(1 和2 是多道批处理系统形成和发展的主要动力)

  1. 平均周转时间长

  1. 无交互能力

多道批处理系统是一种十分有效但又非常复杂的系统,它必须解决下述一些列问题:

  1. 争用处理机问题

  1. 内存分配与保护问题

  1. I/O设备分配问题

  1. 文件的组织与管理问题

  1. 作业管理问题

  1. 用户与系统的接口问题

OS:OS是一组能有效地组织和管理计算机硬件和软件资源,合理地对各类作业进行调度,以及方便用户使用的程序的集合

1.2.4分时系统

为了满足用户对人机交换的需求,具体表现为:1.人机交换 2.共享主机

其实现过程中的关键问题:1.及时接收 2.及时处理

分时系统的特征:

  1. 多路性

  1. 独立性

  1. 及时性

  1. 交互性

1.2.5实时系统

最主要的特征是将时间作为关键参数,对所接收的某些信号做出“及时”或“实时”的反应

  1. 实时系统的类型

  1. 工业控制系统

  1. 信息查询系统

  1. 多媒体系统

  1. 嵌入式系统

实时任务的类型

  1. 周期性实时任务和非周期性实时任务

  1. 硬实时任务和软实时任务

实时系统和分时系统特征的比较:

(1)多路性

(2)独立性

(3)及时性

(4)交互性

(5)可靠性

1.2.6微机操作系统

配置在微机(微型计算机的简称,也称作微型机、微电脑,是由大规模集成电路组成的、体积较小的电子计算机。它是以微处理器为基础)上的OS称为微机OS,使用者通常为个人,因此也被称为个人计算机。

微机OS可按微机的字长来分,例如16字长是指CPU一次能够并行处理16个二进制位

微机可按运行方式分

  1. 单用户单任务OS,如CP/M(8位)和MS-DOS(16位)

  1. 单用户多任务OS,如Windows 3.1 、Windows 95/98

  1. 多用户多任务OS,如UNIX系统,Windows NT/Sever系列的系统

1.2.7嵌入式操作系统

特点:

  1. 系统内核小

  1. 系统精简

  1. 实时性高

  1. 具有可配置性

1.2.8网络操作系统

网络OS的特征:

  1. 硬件独立性

  1. 接口一致性

  1. 资源透明性

  1. 系统可靠性

  1. 执行并行性

1.2.9分布式操作系统

  1. 分布式系统

是基于软件实现的一种多处理机系统

主要特征:分布性透明性同一性全局性

分布式OS处理涵盖单处理机OS的主要功能外,还应包括一下功能:

  1. 通信管理功能

  1. 资源管理功能

  1. 进程管理功能

1.3操作系统的基本特性:并发、共享、虚拟、异步

1.3.1并发

并行:两个或多个事件在同一时刻发生;

并发:两个或多个事件在同一时间间隔内发生

进程:是指在系统中能独立运行并能作为资源分配对象的基本单位,是由一组机器指令、数据和堆栈等组成。

进程和并发是现代OS中最重要的基本概念,也是OS运行的基础

1.3.2共享

  1. 互斥共享方式

  1. 同时共享方式

1.3.3虚拟

在OS中利用时分复用和空分复用技术来实现“虚拟”。

  1. 时分复用技术

在计算机领域,广泛利用时分复用技术来实现虚拟处理机、虚拟设备等,以提高资源的利用率,其根本原因在于,它会令设备在为一个用户服务的空闲时间转去为其他用户服务,进而使设备得到最充分的利用。

  1. 虚拟处理机技术

  1. 虚拟设备技术

  1. 空分复用技术

1.3.4异步

1.4操作系统的运行环境

1.4.2操作系统内核

技术

大多数OS内核包含以下两类功能:

  1. 支撑功能

  1. 中断处理:是内核最基本的功能,是整个OS赖以活动的基础

  1. 时钟管理

  1. 原语操作:所谓原语,就是由若干条指令组成,用于完成一定功能的一个过程。

  1. 资源管理功能

  1. 进程管理

  1. 存储器管理

  1. 设备管理

1.4.3处理机的双重工作模式

用户态和内核态

1.4.4中断与异常

现代OS是中断驱动的。

中断是硬件通过系统总线发送信号到CPU来触发的。

1.5操作系统的主要功能

1.5.1处理机管理功能

  1. 进程控制

  1. 进程同步:有两种协调方式:进程互斥方式、进程同步方式

  1. 进程通信

  1. 调度:作业调度和进程调度

1.5.2存储器管理功能

  1. 内存分配和回收:内存分配有两种方式:1.静态分配方式 2.动态分配方式

  1. 内存保护:确保每道用户程序都仅在自己的内存空间中运行和绝不允许用户程序访问OS的程序和数据

  1. 地址映射

  1. 内存扩充

1.5.3设备管理功能

  1. 缓冲管理

  1. 设备分配

  1. 设备处理

1.5.4文件管理功能

  1. 文件存储空间管理

  1. 目录管理

  1. 文件的读/写管理和保护

1.5.5接口管理

  1. 用户接口

  1. 程序接口

1.5.6现代操作系统的新功能

  1. 保障系统安全

  1. 支持用户通过互联网获取服务

  1. 可处理多媒体信息

1.6操作系统的结构

1.6.1简单结构

1.6.2模块化结构

1.6.3分层式结构

1.6.4微内核结构

1.6.5外核结构

1.7系统调用

  1. 进程控制类系统调用

  1. 文件操纵类系统调用

  1. 进程通信类系统调用

  1. 进程的描述与控制

在传统的OS中,资源的分配和独立运行的基本单位都是进程,OS所具有的四大特征也都是基于进程而形成的。

2.1前驱图

是指一个有向无环图,它用于描述进程之间执行的先后顺序

程序顺序执行时的特征:

  1. 顺序性

  1. 封闭性

  1. 可再现性

程序并发执行时的特征

  1. 间断性

  1. 失去封闭性

  1. 不可再现性

2.2进程的描述

为了使参与并发执行的每个程序(含数据)都能独立地运行,在OS中必须为之配置一个专门的数据结构,称之为进程控制块(PCB).

由程序段,相关的数据段和PCB这3部分便构成了进程实体(又称为进程映像)。

一般情况下,我们把进程实体简称为进程,例如,创建进程,实质上是创建进程的PCB;撤销进程,实质上是指撤销进程的PCB

进程的特征:

  1. 动态性(最基本的特征)

  1. 并发性

  1. 独立性

  1. 异步性

2.2.2进程的基本状态与转换

  1. 进程的3种基本状态(至少处于这3种状态之一):

  1. 就绪状态

  1. 执行状态

  1. 阻塞状态

  1. 进程3种基本状态间的转换

  1. 创建状态和终止状态

2.2.3挂起操作和进程状态的转换

  1. 挂起操作的引入

  1. 为了满足终端用户的需要

  1. 父进程的需要

  1. 负荷调节的需要

  1. OS的需要

  1. 引入挂起操作后进程3个基本状态间的转换

  1. 引入挂起操作后进程5个基本状态间的转换

2.2.4进程管理中的数据结构

OS管理这些控制表一般可分为以下4类:内存表 设备表 文件表 和用于进程管理的进程表,通常进程表又称为PCB

PCB的作用:使一个多道程序环境下不能独立运行的程序,成为一个能独立运行的基本单位

  1. 作为独立运行基本单位的标志

  1. 实现间断性运行方式

  1. 提供进程管理所需要的信息

  1. 提供进程调度所需要的信息

  1. 实现与其他进程的同步与通信

PCB中的信息

  1. 进程标识符:用于唯一地标志一个进程,一个进程通常有两种标识符

  1. 外部标识符

  1. 内部标识符

  1. 处理机状态

  1. 进程调度信息

  1. 进程控制信息

  1. PCB的组织方式

常用有以下3种:

  1. 线性方式

  1. 链接方式

  1. 索引方式

2.3进程控制(一般由os内核中的原语来实现的)

2.3.1进程的创建

1.在os中,允许一个进程创建另一个进程,通常把创建进程的进程称为父进程,而把被创建的进程称为子进程

2.进程图:用于描述进程间关系的一棵有向树

3.引起进程创建的事件:

  1. 用户登录

  1. 作用调度

  1. 提供服务

  1. 应用请求

4.进程的创建

(1)申请空白PCB

(2)为新进程分配其运行所需的资源

(3)初始化PCB

(4)如果进程就绪队列能够接纳新进程,就将新进程插入就绪队列

2.3.2进程的终止

  1. 引起进程终止的事件

  1. 正常结束

  1. 异常结束

  1. 外界干预

  1. 进程的终止过程

os调用进程终止原语

2.3.3进程的阻塞与唤醒

  1. 引起进程阻塞与唤醒的事件

  1. 向系统请求共享资源失败

  1. 等待某种操作的完成

  1. 新数据尚未到达

  1. 等待新任务的到达

  1. 进程阻塞过程

  1. 进程唤醒过程

2.3.4进程的挂起与激活

  1. 进程的挂起

OS利用挂起原语suspend

  1. 进程的激活

OS利用激活原语active

2.4进程通信

是指进程之间的信息交换,通常有低级和高级之分

2.4.1进程的通信类型

高级通信机制可归结4类:共享存储器系统 管道通信系统 消息传递系统 以及客户机-服务器系统

  1. 共享存储器系统

又可分为以下两种类型:

  1. 基于共享数据结构的通信方式

  1. 基于共享存储区的通信方式

  1. 管道通信系统

管道,是指用于连接一个读进程和一个写进程以实现它们之间通信的一个共享文件。又名pipe文件

管道机制必须提供以下3方面的协调能力:1互斥 2同步 3确定对方是否存在

  1. 消息传递系统

又分为两类:直接通信方式和间接通信方式

  1. 客户机-服务器系统

当前主流的通信机制,主要实现方法分为3类:套接字 远程过程调用和远程方法调用

2.4.2消息传递通信的实现方式

  1. 直接通信(直接消息传递系统)

  1. 直接通信原语

1对称寻址方式

2非对称寻址方式

  1. 消息的格式

  1. 进程的同步方式

  1. 通信链路:单向和双向

  1. 间接通信(信箱通信)

  1. 信箱的结构:信箱头信箱体

  1. 信箱通信原语

  1. 信箱的类型

1私用信箱

2公用信箱

3共享信箱

2.5线程的概念

如果说os中引入进程的目的是使多个程序能并发执行,以提高资源利用率和系统吞吐量

那么,在os中引入线程,则是为了减少程序在并发执行时所付出的时空开销,以使os具有更好的并发性

2.5.1线程的引入

1.进程的两个基本属性:进程是一个可拥有资源的独立单位 进程是一个可独立调度和分配的基本单位

2.进程是一个资源的拥有者,因而在创建 撤销和切换中,系统必须为之付出较大的时空开销

  1. 线程---作为调度和分派的基本单位

2.5.2线程与进程的比较

线程具有传统进程所具有的很多特征,因此又称为轻型进程或进程元;相应地,把传统进程称为重型进程

  1. 调度的基本单位

  1. 并发性

不仅进程之间可以并发执行,在一个进程中的多个线程之间也可并发执行

  1. 拥有资源

进程可以拥有资源,线程可以说几乎不拥有资源

  1. 独立性

同一进程中的不同线程之间的独立性,要比不同进程之间的独立性低得多

  1. 系统开销

线程的切换代价远低于进程

  1. 支持多处理机系统

2.5.3线程状态和线程控制块

  1. 线程执行的3个状态

  1. 执行状态

  1. 就绪状态

  1. 阻塞状态

  1. 线程控制块(TCB)

  1. 多线程os中的进程属性

  1. 进程是一个可拥有资源的基本单位

  1. 多个线程可并发执行

  1. 进程已不是可执行的实体

2.6线程的实现

2.6.1线程的实现方式

  1. 内核支持线程(KST)

  1. 用户级线程(ULT)

2.6.2线程的具体实现

2.6.3线程的创建与终止

  1. 处理机调度与死锁

当一个进程申请某个资源时,如果没有可用资源,那么该进程就会变成等待状态;若所有申请的资源被其他等待进程占有,那么该等待进程有可能再也无法改变状态,这种情况称为死锁。

3.1处理机调度概述

在多道程序系统中,调度的实质是一种资源分配,处理机调度是对处理机进行分配。

3.1.1处理机调度的层次

  1. 高级调度

又称为长程调度或作业调度,它的调度对象是作业;主要用于多道批处理系统中,而在分时系统和实时系统中,不设置高级调度

  1. 低级调度

又称为短程调度或进程调度,它的调度对象是进程;低级调度是最基本的一种调度,在多道批处理、分时和实时这3种系统种,都必须配置这种调度。

  1. 中级调度

又称为内存调度,引入它的目的是提高内存利用率和系统吞吐量

在上述3种调度中,低级调度的运行频率最高

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
目錄 前言 第一章 ROS简介 机器人时代的到来 ROS发展历程 什么是ROS 安装ROS 安装ROS-Academy-for-Beginners教学包 二进制与源码包 安装RoboWare Studio 单元测试一 第二章 ROS文件系统 Catkin编译系统 Catkin工作空间 Package软件包 CMakeLists.txt package.xml Metapacakge软件元包 其他常见文件类型 单元测试二 第三章 ROS通信架构(一) Node & Master Launch文件 Topic Msg 常见msg类型 单元测试三 第四章 ROS通信架构(二) Service Srv Parameter server 11.5.4 1.5.5 1.5.6 1.5.7 1.6 1.6.1 1.6.2 1.6.3 1.6.4 1.6.5 1.6.6 1.6.7 1.7 1.7.1 1.7.2 1.7.3 1.7.4 1.7.5 1.7.6 1.7.7 1.8 1.8.1 1.8.2 1.8.3 1.8.4 1.9 1.9.1 1.9.2 1.9.3 1.9.4 1.9.5 1.9.6 1.9.6.1 1.9.6.2 Action 常见srv类型 常见action类型 单元测试四 第五章 常用工具 Gazebo RViz Rqt Rosbag Rosbridge moveit! 单元测试五 第六章 roscpp Client Library与roscpp 节点初始、关闭与NodeHandle Topic in roscpp Service in roscpp Param in roscpp 时钟 日志与异常 第七章 rospy Rospy与主要接口 Topic in rospy Service in rospy Param与Time 第八章 TF与URDF 认识TF TF消息 tf in c++ tf in python 统一机器人描述格式 附录:TF数学基础 三维空间刚体运动---旋转矩阵 三维空间刚体运动---欧拉角 21.9.6.3 1.10 1.10.1 1.10.2 1.10.3 1.10.4 1.11 1.11.1 1.11.2 1.11.3 1.11.4 1.12 1.12.1 1.12.2 1.12.3 1.12.4 1.12.5 1.12.6 1.12.7 1.12.8 1.12.9 1.12.10 1.12.11 1.12.12 1.12.13 1.12.14 1.12.15 1.12.16 三维空间刚体运动---四元数 第九章 SLAM 地图 Gmapping Karto Hector 第十章 Navigation Navigation Stack move_base costmap Map_server & Amcl 附录:Navigation工具包说明 amcl local_base_planner carrot_planner clear_costmap_recovery costmap_2d dwa_local_planner fake_localization global_planner map_server move_base_msg move_base move_slow_and_clear navfn nav_core robot_pose_ekf rotate_recovery 3中国大学MOOC---《机器人操作系统入门》 课 程讲义

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值