前言

本文是结合《现代操作系统》(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.引论)相关推荐

  1. 计算机操作系统例题总结

    计算机操作系统例题 引论及进程管理 --选择 --简答 --计算 处理机调度与死锁作业 选择 简答 计算 存储器管理 选择 简答 设备管理作业 单选 文件管理作业 选择 简答 阅读 引论及进程管理 – ...

  2. 历史文件备份,原文件已损失

    zzf073的博客 - 第6页 - DevDiv开发者社区 - Powered by DEVDIV.COM! zzf073的博客 - 第4页 - DevDiv开发者社区 - Powered by DE ...

  3. 【408预推免复习】操作系统引论

    [408&预推免复习]操作系统引论 文章目录 1 操作系统的目标和作用 2 单道批处理系统 3 多道批处理系统 4 操作系统基本特性 1 操作系统的目标和作用 2 单道批处理系统 3 多道批处 ...

  4. 操作系统第一篇【引论】

    tags: 操作系统, title: 操作系统第一篇[引论] 操作系统概述 操作系统是掌控计算机上所有事情的软件系统. 从系统管理人员的观点来看,操作系统是计算机资源的管理者. 从用户的观点来看,引入 ...

  5. 《现代操作系统》第1章读书笔记-- 引论(未完成)

    第1章 引论 现代计算机系统由一个或多个处理器.主存.磁盘.打印机.键盘.鼠标.显示器.网络接口以及各种其他输入/输出设备组成.一般而言,现代计算机系统是一个复杂的系统.如果每位应用程序员都不得不掌握 ...

  6. 第一章 操作系统引论

    第一章 操作系统引论 1.1 操作系统的目标 1.1.1 操作系统的目标 1.1.2 操作系统的作用 1.1.3 推动操作系统的主要动力 1.2 操作系统的发展过程 1.2.1 未配置操作系统的计算机 ...

  7. 北航操作系统课程-第一次作业-操作系统引论1

    北航操作系统课程-第一次作业-操作系统引论1 北京航空航天大学计算机学院-2020春操作系统课程 题目作者为北航计算机学院操作系统课程组,答案为博主原创.水平有限,无法保证作答正确性,如有错误敬请批评 ...

  8. 【操作系统之考前垂死挣扎】01操作系统引论

    1操作系统引论 1.1:操作系统的目标和作用 1.2:操作系统的发展过程 1.3:操作系统的基本特性 1.4:操作系统的主要功能 1.5:OS结构设计 1.6:常见的OS 1.1:操作系统的目标和作用 ...

  9. 《操作系统第四版》(刘振鹏 王煜)(一)引论

    一.引论 1.1 操作系统的概念 1.1.1计算机系统 硬件系统+软件系统(程序和文件) 软件分为:系统软件(操作系统).支撑软件(数据库.编译程序).应用软件 1.1.2什么是操作系统 用户角度:是 ...

最新文章

  1. Petapoco 连接oracle11g 自动生成poco时遇到的问题
  2. 2021十大科技趋势来了!阿里巴巴达摩院全新发布
  3. 机器学习:林智仁libsvm 工具箱 在matlab下的应用总结
  4. 影响u盘传输速度和使用寿命的几大因素
  5. vue --- 修饰符.lazy、.number、.trim
  6. GitHub 热点速览 | 极客们都在玩这些 Terminal!
  7. Linux scp 使用详解
  8. [Flink]Flink 的物理分区器
  9. unity newtonsoft 反序列化报空_基于Unity3D的大地形研究(2):资源序列化与材质加载...
  10. CodeForces 2B The least round way
  11. paip.提高用户体验----c++图片按钮方法总结
  12. 红帽子linux系统下载服务器OS:Windows、Linux与Unix三分天下
  13. 互联网产品经理好书推荐
  14. antdesignpro 权限_ant design pro 权限管理
  15. 收集最火的开源项目——PHP 篇
  16. 老男孩教育 | 从小白进军IT,他仅用了四个月的时间!
  17. White自动化测试培训大纲
  18. Java递归删除空文件夹
  19. TPC好像是这么回事儿
  20. 7家顶级机构投资策略分析

热门文章

  1. linux安装java教程
  2. 关关于印发北京市廉租住房、经济适用住房家庭收入、住房、资产准入标准的通知 于印发北京市廉租住房、经济适用住房家庭收入、住房、资产准入标准的通知
  3. Java之——Hash算法大全
  4. Unable to start web server; nested exception is org.springframework.context.ApplicationContextExcept
  5. 【蓝桥杯】单片机精确延时——软件延时
  6. 怎么样给小孩取名字?给自己的孩子起名就应该注意这些问题
  7. tableau无法建立连接_Tableau入门(一):数据连接
  8. 【PHP + MySQL】【分享】搭建网站自动回复机器人
  9. 【株洲出差】回记人生第一次出差之旅
  10. 聊聊常见的服务(接口)认证授权