现代操作系统(1.引论)
前言
本文是结合《现代操作系统》(Andrew S. Tanenbaum著)的摘要与上课ppt的笔记,自用。
第一章:引论
任务核心:存储+cpu(任务执行性能与内存大小是一个log型函数)
文件从使用角度区分:
①程序类文件
②数据类文件
(用例:播放器播放视频;视频是数据文件、播放器是程序文件)
格式化是指装上文件管理系统,不同操作系统会影响管理系统
cpu多核:有多个控制单元与执行单元
多数计算机有两种运行模式:
①内核态;
②用户态
软件中最基础的部分是操作系统,它运行在内核态(也称为管态、核心态)。操作系统具有对所有硬件的完全访问权,可以执行机器能够运行的任何指令。软件的其余部分运行在用户态,用户态只使用了机器指令中的一个子集(那些会影响机器的控制或可进行I/O操作的指令,在用户态中的程序里是禁止的)
1.1 什么是操作系统
操作系统:是运行在内核态的一种软件,其任务是为用户程序提供一个更好、更简单、更清晰的计算机模型,并管理刚刚提到的所有设备,是一个硬件设备的扩展。
- 用户与之交互的程序,基于文本的称为shell;
- 基于图标的称为图形用户界面(GUI)
操作系统功能:
- 机器扩展:屏蔽接口之间的差异以支持多种设备,为开发者提供一个标准的接口。
- 有效分配资源:执行用户需要
- 管理资源:①管理cpu;②管理主存;③管理文件;④管理其他设备的通信
1.1.1 作为扩展机器的操作系统
所有的操作系统都提供使用硬盘的又一层抽象:文件。
1.1.2 作为资源管理者的操作系统
资源管理包括用以下两种不同方式实现多路复用(共享)资源:在时间上复用和空间上复用。
1.2 操作系统的历史
硬件性能的发展,网络的发展
计算机的发展历程:
- 脱机:输入、运行、输出完全分割,分别作用于不同的设备
- 联机:终端和主机连接,通过网络方式连接,缺点在于:当某一个终端想要使用主机时,必须等待当前终端执行结束,串行执行浪费大量计算资源
- 假脱机:在一定时间期限内收集所有的输入请求,再进行处理
1.2.1 第一代(1945~1955):真空管和穿孔卡片
1 .2.2 第二代(1955~1965):晶体管和批处理系统
1.2.3 第三代(1965~1980):继承电路和多道程序设计
1.2.4 第四代(1980至今):个人计算机
个人操作系统:主动访问方式,同时只允许一个用户登录
服务器操作系统:允许多个用户同时登录,对于并发情况的处理更严格
1.2.5 第五代(1990至今):移动计算机
移动计算机类型:
- 移动端:能源问题(电池)使得性能部分放弃;散热问题限制芯片大小
- 台式机
操作系统随之发展的四个阶段:
- 1.手工阶段
联机方式:上机前需预约,操作者与程序员需再现场,输入输出依靠纸带机在纸带上打孔,上机时间较长。
脱机方式:程序运行时,程序员可以不在现场,由操作员完成操作。 - 2.批处理系统
由常驻内存的监控程序实现作业之间的转换自动化,监督计算机运行情况。依赖磁带技术、卫星机、纸带、磁带。
单道批处理系统,主要特征:顺序性,自动性,单道性。系统吞吐量低,无交互。
多道批处理系统,主要特征:多道程序宏观上并行,微观上串行。提高了系统吞吐量和资源利用率,但是用户响应时间较长,也不提供交互。
前台任务优先级>后台任务 - 3.分时操作系统
分时操作系统,具有同时性,交互性,独立性,和及时性。能够对用户进行及时响应。解决了人机交互问题,但不能在规定时间内做出处理于是有了实时操作系统。 - 4.实时操作系统
主要特点是及时性和可靠性,能够违反时间规定在规定的时间内响应。
1.3 计算机硬件简介
1.3.1 处理器
cpu中断称为陷阱
cpu性能受元器件个数的影响,元器件个数影响散热和电磁干扰,所以cpu多核的发展仍有瓶颈。
cpu的两种模式:内核态(执行指令)与用户态(执行用户程序)
cpu=控制单元+运算单元+存储单元。
控制单元
- 流水线方式:取一条指令,分配运行单元,执行完后再取指令
- 超标量运算:cpu原为单核,但有多个运算器,不同运算器可以同时执行不同的指令,使得单核cpu支持指令级并行的运算。
运算单元
存储单元
从计算机硬件角度看cpu是一个独占资源;从用户使用角度因为不同时间段执行不同任务需求,也可以看作是共享资源
1.3.2 存储器
任务执行性能与内存大小是一个log型函数;
内存是独占资源,而存储的数据在权限的设置下可以成为共享资源;
内存小速度快
1.3.3 磁盘
硬盘是磁盘的一种;
硬盘把数据调到硬盘缓存,内存从硬盘缓存读数据,然后传输到cpu的缓存,cpu从多级缓存中读数据,内存就是一个数据中转站,因为cpu读取速度远远大于硬盘,内存的速度是很快的,通过内存这个桥梁来提高cpu读取数据的速度。
缓冲区(硬盘):输入缓冲区与输出缓冲器保证了并行任务实现的功能,cpu不必一直等待,当数据在输入点准备好,由相应的管理系统运行准备好的数据(作业)
数据输出汇总到输出点,但只有到用户收到所有数据才叫作业完成。
缓存是一个共享空间
内存与外存的交互通过外部排序实现
外存容量大速度低
1.3.4 I/O设备
输出设备:显示器
I/O设备是必须设备
1.3.5 总线
总线是独占资源,因为传输数据过程不可打断
总线类型:
- 数据总线;
- 地址总线;
- 控制总线
1.3.6 启动计算机
cpu中断
其他中断:执行下一条指令
1.4 操作系统大观园
1.4.1 大型机操作系统
用于大型操作系统主要面向多个作业的同时处理,多数这样的作业需要巨大的I/O能力。
1.4.2 服务器操作系统
服务器操作系统在服务器上运行,通过网络同时为若干个用户服务,并且允许用户共享硬件和软件资源。
1.4.3 多处理器操作系统
获得大量联合计算能力的常用方式是将CPU连接成单个的系统。依据连接和共享方式的不同这些系统被称为并行计算机,多计算机或多处理器。
1.4.4 个人计算机操作系统
现代个人计算机操作系统都支持多道程序处理,在启动时,通常有几十个程序开始运行。他们的功能是为单个用户提供良好的支持。
1.4.5 掌上计算机操作系统
掌上计算机或PDA是一种可以握在手中操作的小型计算机(eg:平板电脑、智能手机)
1.4.6 嵌入式操作系统
嵌入式系统在用来控制设备的计算机中运行,这种设备不是一般意义的计算机,并且不允许用户安装软件,例如:微波炉、电视机
1.4.7 传感器节点操作系统
传感器是一种内建有无线电的电池驱动的小型计算机,节点相互连接形成网络,可以彼此通信。
1.4.8 实时操作系统
这些系统的特征是将时间作为关键参数。
- 硬实时系统:某个动作必须绝对地在规定的时刻(或规定的时间范围)发生
- 软实时系统:在这种系统中,虽然不希望偶尔违反最终实现,但仍可以接收,并且不会引起任何永久性地损害
1.4.9 智能卡操作系统
智能卡是一种包含一块CPU芯片的信用卡,它有非常严格的运行能耗和存储空间的限制
1.5 操作系统概念
1.5.1 进程
进程:本质上是正在执行的一个程序
进程表:将进程相关(除了该进程自身地址空间的内容)信息放在一个操作系统中的数组/链表结构中。每个进程占一项。
进程树:一个进程能够创建一个或多个进程(称为子进程),并且这些进程又可以创建子进程。
一个(挂起的)进程包含:
- 进程的地址空间
- 对应的进程表项(包括寄存器以及稍后重启动该进程所需要的许多其他信息)
1.5 2 地址空间
操作系统创建了一个地址空间的抽象,作为进程可以引用地址的集合。这样可以使得在内存中同时运行多道程序时,他们不会互相干扰。
1.5.3 文件
操作系统的一项主要功能是隐藏磁盘和其他I/O设备的细节特性,给提供程序员一个良好、清晰的独立于设备的抽象文件模型。
- 保存文件:以目录的形式保存;
绝对路径:包含了根目录到该文件的所有目录清单,它们之间用正斜线隔开。 - 读写文件:先打开文件检查权限,再进行后续操作。
- 特殊文件:为了使I/O设备看起来像文件一般,使得I/O设备可以通过同样的系统调用进行读写
- ①块特殊文件:指可以随机存取块组成的设备。
- ②字符特殊文件:用于打印机等接收和输出字符流的设备
管道:是一种虚文件,可以连接两个进程;管理两个进程之间的数据传递或通信读写。
1.5.4 输入/输出
每个操作系统都有管理其I/O设备的I/O子系统。
1.5.5 保护
操作系统会管理系统的安全性,比如授予文件不同的访问权限
1.5.6 shell
UNIX的命令解释器,shell本身不是操作系统的一部分。
①:shell创建一个子进程,并运行data程序作为子进程。shell一直等待它结束后再显示提示符(可能是¥),等待下一次输入
data
②:将标准输入重定向到一个文件
data>file
③:调用sort程序,从file1中取得输入,再输出到file2
sort<file1>file2
④:调用cat程序将三个程序进行合并,送到sort程序按字典序排序,sort输出重定向到dev/lp中(也就是打印机)
cat file1 file2 file3|sort>dev/lp
⑤:&结尾则shell不用等待该子进程结束,而是将其转到后台执行,从而允许用户执行新的任务。
cat file1 file2 file3|sort>dev/lp &
1.6 系统调用
操作系统有两种功能:
- 为用户程序提供抽象
- 管理计算机资源
cpu计算机一次只能执行一条指令。
以c程序进行的read系统调用为例:
count = read(fd,buffer,nbytes)
- fd:指定文件
- buffer:指向缓冲区中的存储地址,通过&buffer访问地址内容
- nbytes:说明要读出的字节数
- count:返回实际读出的字节数(一般≤nbytes);如果参数无效或是磁盘发生错误,count会被置-1
1.6.1 用于进程管理的系统调用
涉及到fork(派生)相关内容,可以理解为父进程的数据被复制用以创建子进程,中途使用fork调用会返回一个值(在子进程中值为0,在父进程中等于子进程的进程标识符:PID)
1.7.1 单体系统
操作系统在内核态以单一程序的方式运行。整个操作系统以过程集合的方式编写,链接成一个大型可执行的二进制程序。
具体过程:
- 先编译所有单个的过程
- 通过系统链接程序将它们链接成单一的目标文件
1.7.2 层次式系统
THE操作系统的结构:
层号 | 功能 |
---|---|
5 | 操作员 |
4 | 用户程序 |
3 | 输入/输出管理 |
2 | 操作员-进程通信 |
1 | 存储器和磁鼓管理 |
0 | 处理器分配和多道程序设计 |
1.7.3 微内核
在分层设计中,设计者要确定在哪里划分内核=用户的边界
微内核的设计思想:为了实现高可靠性,将操作系统划分为小的、良好定义的模块,只有其中一个模块——微内核——运行在内核态,其余的模块由于功能相对弱些,则作为普通用户进程运行。
1.7.4 客户端-服务器模式
将进程划分为两类:
- 服务器端——每个服务器提供某种服务
- 客户端——使用这些服务
1.7.5 虚拟机
用户在终端上进行交互的两种方式
- 以特殊文件
- 以地址/端口
操作系统的三种类别:
- 分时系统
- 实时系统
- 批处理系统:用于以运算为主的操作系统中,以假脱机的方式进行
现代操作系统(1.引论)相关推荐
- 计算机操作系统例题总结
计算机操作系统例题 引论及进程管理 --选择 --简答 --计算 处理机调度与死锁作业 选择 简答 计算 存储器管理 选择 简答 设备管理作业 单选 文件管理作业 选择 简答 阅读 引论及进程管理 – ...
- 历史文件备份,原文件已损失
zzf073的博客 - 第6页 - DevDiv开发者社区 - Powered by DEVDIV.COM! zzf073的博客 - 第4页 - DevDiv开发者社区 - Powered by DE ...
- 【408预推免复习】操作系统引论
[408&预推免复习]操作系统引论 文章目录 1 操作系统的目标和作用 2 单道批处理系统 3 多道批处理系统 4 操作系统基本特性 1 操作系统的目标和作用 2 单道批处理系统 3 多道批处 ...
- 操作系统第一篇【引论】
tags: 操作系统, title: 操作系统第一篇[引论] 操作系统概述 操作系统是掌控计算机上所有事情的软件系统. 从系统管理人员的观点来看,操作系统是计算机资源的管理者. 从用户的观点来看,引入 ...
- 《现代操作系统》第1章读书笔记-- 引论(未完成)
第1章 引论 现代计算机系统由一个或多个处理器.主存.磁盘.打印机.键盘.鼠标.显示器.网络接口以及各种其他输入/输出设备组成.一般而言,现代计算机系统是一个复杂的系统.如果每位应用程序员都不得不掌握 ...
- 第一章 操作系统引论
第一章 操作系统引论 1.1 操作系统的目标 1.1.1 操作系统的目标 1.1.2 操作系统的作用 1.1.3 推动操作系统的主要动力 1.2 操作系统的发展过程 1.2.1 未配置操作系统的计算机 ...
- 北航操作系统课程-第一次作业-操作系统引论1
北航操作系统课程-第一次作业-操作系统引论1 北京航空航天大学计算机学院-2020春操作系统课程 题目作者为北航计算机学院操作系统课程组,答案为博主原创.水平有限,无法保证作答正确性,如有错误敬请批评 ...
- 【操作系统之考前垂死挣扎】01操作系统引论
1操作系统引论 1.1:操作系统的目标和作用 1.2:操作系统的发展过程 1.3:操作系统的基本特性 1.4:操作系统的主要功能 1.5:OS结构设计 1.6:常见的OS 1.1:操作系统的目标和作用 ...
- 《操作系统第四版》(刘振鹏 王煜)(一)引论
一.引论 1.1 操作系统的概念 1.1.1计算机系统 硬件系统+软件系统(程序和文件) 软件分为:系统软件(操作系统).支撑软件(数据库.编译程序).应用软件 1.1.2什么是操作系统 用户角度:是 ...
最新文章
- Petapoco 连接oracle11g 自动生成poco时遇到的问题
- 2021十大科技趋势来了!阿里巴巴达摩院全新发布
- 机器学习:林智仁libsvm 工具箱 在matlab下的应用总结
- 影响u盘传输速度和使用寿命的几大因素
- vue --- 修饰符.lazy、.number、.trim
- GitHub 热点速览 | 极客们都在玩这些 Terminal!
- Linux scp 使用详解
- [Flink]Flink 的物理分区器
- unity newtonsoft 反序列化报空_基于Unity3D的大地形研究(2):资源序列化与材质加载...
- CodeForces 2B The least round way
- paip.提高用户体验----c++图片按钮方法总结
- 红帽子linux系统下载服务器OS:Windows、Linux与Unix三分天下
- 互联网产品经理好书推荐
- antdesignpro 权限_ant design pro 权限管理
- 收集最火的开源项目——PHP 篇
- 老男孩教育 | 从小白进军IT,他仅用了四个月的时间!
- White自动化测试培训大纲
- Java递归删除空文件夹
- TPC好像是这么回事儿
- 7家顶级机构投资策略分析
热门文章
- linux安装java教程
- 关关于印发北京市廉租住房、经济适用住房家庭收入、住房、资产准入标准的通知 于印发北京市廉租住房、经济适用住房家庭收入、住房、资产准入标准的通知
- Java之——Hash算法大全
- Unable to start web server; nested exception is org.springframework.context.ApplicationContextExcept
- 【蓝桥杯】单片机精确延时——软件延时
- 怎么样给小孩取名字?给自己的孩子起名就应该注意这些问题
- tableau无法建立连接_Tableau入门(一):数据连接
- 【PHP + MySQL】【分享】搭建网站自动回复机器人
- 【株洲出差】回记人生第一次出差之旅
- 聊聊常见的服务(接口)认证授权