大家可以看下我使用幕布软件画的思维导图,如果大家想使用幕布可以通过我的邀请链接注册,可免费获得一个月高级会员https://mubu.com/inv/477598

现如今主流的操作系统

1.1.1 PC

1.1.1.1 Windows

Microsoft Windows是微软公司推出的一系列操作系统。其问世时间为1985年,起初为运行于MS-DOS之下的桌面环境,其后续版本逐渐发展成为主要为个人计算机和服务器用户设计的操作系统,并最终获得了世界个人计算机操作系统的垄断地位。此操作系统可以在几种不同类型的平台上运行,如个人计算机、移动设备、服务器和嵌入式系统等等,其中在个人计算机的领域应用内最为普遍。
Windows操作系统当前最新的稳定版是于2015年7月29日发布的 Windows 10。Windows Server当前最新的稳定版是2018年10月2日发布的Windows Server 2019。Windows Phone当前最新的稳定版是Windows10 Mobile,但是已停止开发新版本,仅对现有版本进行安全补丁和维护,直到2019年12月。

1.1.1.2 macOS

macOS(2011年及之前称Mac OS X,2012年至2015年称OS X)是苹果公司推出的基于图形用户界面操作系统,为麦金塔(Macintosh)的主操作系统。StatCounter在2018年8月的数据表示,在桌面操作系统中,macOS的使用份额为12.65%,次于Windows的82.51%位居第二。
macOS当前最新的稳定版是2018年9月25日发布的macOS 10.14 Mojave,2019年6月4日推出macOS 10.15 Catalina的第一个测试版本。

1.1.1.3 Linux

Linux是一种自由和开放源码的类UNIX 操作系统。该操作系统的内核由林纳斯·托瓦兹在1991年10月5日首次发布,在加上用户空间的应用程序之后,成为 Linux 操作系统。Linux也是自由软件和开放源代码软件发展中最著名的例子。只要遵循 GNU 通用公共许可证(GPL),任何个人和机构都可以自由地使用 Linux 的所有底层源代码,也可以自由地修改和再发布。大多数 Linux 系统还包括像提供 GUI 的 X Window 之类的程序。除了一部分专家之外,大多数人都是直接使用 Linux 发行版,而不是自己选择每一样组件或自行设置。

1.1.1.4 Unix

UNIX操作系统(尤尼斯),是一个强大的多用户、多任务操作系统,支持多种处理器架构,按照操作系统的分类,属于分时操作系统,最早由KenThompson、Dennis Ritchie和Douglas McIlroy于1969年在AT&T的贝尔实验室开发。它的商标权由国际开放标准组织所拥有,只有符合单一UNIX规范的UNIX系统才能使用UNIX这个名称,否则只能称为类UNIX(UNIX-like)。

1.1.2 移动端

1.1.2.1 Android

Android,常见的非官方中文名称为安卓,是一个基于Linux内核的开放源代码移动操作系统,由Google成立的Open Handset Alliance持续领导与开发,主要设计用于触摸屏移动设备如智能手机和平板电脑与其他便携式设备。
Android Inc.于2003年10月由安迪·鲁宾、利奇·米纳尔、尼克·席尔斯、克里斯·怀特在加州帕罗奥图创建。Android最初由安迪·鲁宾等人开发制作,最初开发这个系统的早期方向是创建一个数字相机的先进操作系统,但是后来发现市场需求不够大,加上智能手机市场快速成长,于是Android成为一款面向智能手机的操作系统。于2005年7月11日Android Inc.被美国科技企业Google收购。
2017年3月,Android全球网络流量和设备超越Microsoft Windows,正式成为全球第一大操作系统。

1.1.2.2 iOS

iOS(原名为iPhone OS)是苹果公司为其移动设备所开发的专有移动操作系统,为其公司的许多移动设备提供操作界面,支持设备包括iPhone、iPad和iPod touch。iPhone OS自iOS 4起便改名为iOS,它是继Android后全球第二大最受欢迎的移动操作系统,市占率已上升至约24.5% ,但仍远低于Google开发的Android系统的72.2%。

1.2 操作系统的简介与作用

1.2.1 操作系统的简介

操作系统是配置在计算机硬件上的第一层软件,是对硬件系统的首次扩充。主要作用是对管理好计算机硬件设备,提高他们的利用率和系统的吞吐量,并为用户和应用程序提供一个简单接口,便于用户使用。

1.2.2 操作系统的目的

  1. 方便性
    如果一个计算机没有OS,那么他会非常难用。用户不管进行啥操作都得通过机器语言编写程序然后运行,而如果有OS的话,用户就可以使用各种各样的语言编写程序,然后通过编译将高级语言编译成机器代码,方便了用户。
  2. 有效性
    有效性分两层含义——提高系统资源的利用率和提高系统的吞吐量。早期没有OS的计算机中,处理机和I/O设备等经常处于空闲状态,各种资源不能得到合理利用,所以提高系统资源利用率是推动OS发展的主要动力。另一方面,OS可以通过合理组织计算机的工作流程,加速程序的运行,缩短程序的运行周期,从而提高系统的吞吐量。
  3. 可扩充性
    为了适应现在越来越多的计算机硬件以及体系结构,OS必修有良好的可扩充性。
  4. 开放性
    OS需要遵循世界标准规范,凡遵循国际标准所开发的硬件和软件都能彼此兼容,方便地实现互联。

1.2.3 操作系统的作用

  1. OS作为用户与计算机硬件系统之间的接口
    OS处于用户和硬件之间,方便用户通过OS使用硬件。或者说,用户在OS的帮助下能够方便、快捷、可靠地操纵计算机硬件和运行自己的程序。
  2. OS作为计算机系统资源的管理者
    计算机系统资源主要可分为处理机、存储器、I/O设备以及文件。OS主要功能也就是对这四类资源进行有效的管理。处理机管理是用于分配和控制处理机;存储器管理主要负责内存的分配与回收;I/O设备管理是负责I/O设备的分配与操纵;文件管理是用于实现对文件的存取、共享和保护。
  3. OS实现了对计算机资源的抽象
    在裸机中,用户如果想要对计算器进行操作,必须对物理接口的实现细节有充分的了解。但在操作系统中,用户并不需要关心具体的物理,而由操作系统来实现具体的操作细节,并向上讲操作设备抽象为一组数据结构以及一组操作命令。此时在用户眼里,看到的是一台比裸机功能更强,使用更方便的机器。

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

  1. 不断提高计算机资源利用率
  2. 方便用户
  3. 器件的不断更新换代
  4. 计算机体系结构的不断发展
  5. 不断提出新的应用需求

1.3 操作系统的发展

1.3.1 单道批处理系统

在说单道批处理之前现要引入一个概念——作业。作业包括用户程序、数据、作业说明书。这样每一个处理对象都是作业。

1. 处理过程

每个单道批处理系统都有一个系统操作员。用户先将作业交给系统操作员,然后操作系统操作员就将一个个作业组成一批作业,输入到计算机中,在系统中形成一个自动转接的作业流,然后启动操作系统对作业自动、依次的处理,处理完成后再将处理结果返回给系统操作员,操作员在返回给用户。这样就形成了一个单道批处理过程。
单道批处理系统处理过程

2. 缺点

系统资源得不到充分利用。这是因为在内存中仅有一道程序,每逢程序在运行中发出I/O请求后,CPU便处于等待状态,必须在I/O完成后才继续运行。

1.3.2 多道批处理系统

1. 处理过程

在该系统中,用户所提交的作业先放在外存中,并排成一个队列,称为“后备队列“。然后由作业调度程序按一定的算法,从后备队列中选择若干作业调入内存。由于同时在内存中装有若干道程序,这样便可以在运行程序A时,利用其I/O操作暂停执行时的CPU空档期,再调度另一道程序B运行。

2. 优缺点

  1. 优点
    1. 资源利用率高
    2. 系统吞吐量大
  2. 缺点
    1. 平均周转时间长
    2. 无交互能力

1.3.3 分时系统

1. 运行方式

  1. 作业直接进入内存。因为作业在磁盘上不可运行,所以作业应直接进入内存
  2. 采用轮转运行方式。如果一个作业独占CPU连续运行,那么其他作业没法运行。为了避免这种情况,引入了时间片概念。一个时间片是一个很短的时间,系统规定了每个作业每次只能运行一个时间片,然后就暂停该作业的运行,并立即调度下一个作业运行。如果在不长的时间内能使所有的作业都执行一个时间片的时间,便可以使每个用户都能及时地与自己的作业进行交互,从而使用户的请求的到及时响应。

2. 特征

  1. 多路性
  2. 独立性
  3. 及时性
  4. 交互性

1.3.4 实时系统

实时系统是指系统能及时响应外部事件的请求,在规定时间内完成对该事件的处理,并控制所有实时任务协调一致地运行。
实时系统主要应用于:

  1. 工业(武器)控制系统
  2. 信息查询系统
  3. 多媒体系统
  4. 嵌入式系统

1.4 操作系统的基本特征

1.4.1 并发

正是系统中有这一特征,才使得OS能有效地提高系统中的资源利用率,增加系统的吞吐量。

并发与并行

并行是指两个或多个事件在同一时刻发生,微观上是同一时刻多个线程在CPU上运行。
并发是指宏观上两个或多个事件在同一时间发生,微观上缺是某一时刻CPU上只有一个进程。

1.4.2 共享

资源共享,即操作系统中的资源可供多个并发执行的进程共同使用,由于资源属性不同,多个进程对资源的共享方式也不同。可分为:互斥共享方式和同时访问方式。

1. 互斥共享方式

一段时间内只允许一个进程访问该资源,如磁带机,打印机等。虽然可以供多个进程使用,但是为了打印或记录结果不造成混淆,应规定一段时间内只允许一个进程访问该资源。

2. 同时访问方式

某些资源,一段时间内是可以允许多个进程“同时”同时对他们进行访问,这个同时是宏观上的,在微观上可能是分时共享。

1.4.3 虚拟

在OS中,把通过某种技术将一个物理实体变为若干个逻辑上的对应物的功能称为”虚拟“。

1.4.4 异步

在多道环境下,允许多个程序并发执行。但由于资源有限,进程的执行不是一贯到底。而是走走停停,以不可预知的速度向前推进,这就是进程的异步。

1.5 操作系统的主要功能

操作系统的主要功能应分为处理机管理、存储器管理、设备管理和文件管理。此外,还应向用户提供方便的用户接口。

1.5.1 处理机管理功能

1. 进程控制

在多道程序环境中,为了使作业能并发执行,必须为每道作业创建一个或几个进程,并为之分配必要的资源。当进程运行结束时,应立即撤销该进程,以便能及时回收该进程所占用的各种资源,供其它进程使用。

2. 进程同步

为了使多个进程能有条不紊的运行,系统中必须设置相应的进程同步机制。该机制的主要任务是为多个进程的运行进行协调。

3. 进程通信

如果一组相互合作的进程去完成一个共同的任务时,在他们之间往往需要交换信息。

4. 调度

在传统OS中,调度包括作业调度和进程调度。

  1. 作业调度
    作业调度的基本任务就是从后备队列中按照一定的算法选择出若干个作业,为他们分配所需资源,在这些作业调入内存后,分别为他们创建进程,是他们都称为可能获得处理机的就绪进程,并将他们插入就绪队列中。
  2. 进程调度
    进程调度的任务是从进程的就绪队列中按照一定的算法选出一个进程,将处理机分配给他,并为他设置运行线程,使其投入执行。

1.5.2 存储器管理功能

存储器管理视为多道程序的运行提供良好的环境,提高存储器利用率,并能从逻辑上扩充内存。为此,存储器管理应具有内存分配和回收、内存保护、地址映射和内存扩充等功能。

1. 内存分配

内存分配主要任务是:

  1. 为每道程序分配内存空间
  2. 提高存储器的利用率,尽量减少不可用的内存空间
  3. 允许正在运行的程序申请附加的内存空间,以适应程序和数据动态增长的需要。

OS在实现内存分配时,可采取静态和动态两种方式:

  1. 静态分配内存。每个作业的内存空间在作业装入时确定,确定后不再改变。
  2. 动态分配内存。每个作业所要求的的基本内存空间虽然也是在装入时确定的,但允许作业在运行过程中继续申请新的附加内存空间,以适应程序和数据的动态增长。

2. 内存保护

确保每道用户程序都在自己的内存空间内运行,彼此互不干扰。决不允许用户程序访问操作系统的程序和数据,也不允许用户程序转移到非共享的其他用户程序中去执行。

3. 地址映射

每道程序经编译连接后所形成的的可装入程序其地址都是从0开始的,但是不可能将他们从“0”地址开始装入内存,所以物理地址和逻辑地址并不一致,这时候就需要地址映射来让程序能正常运行。

4. 内存扩充

借助虚拟存储技术来实现内存扩充,主要解决:

  1. 内存和I/O之间速度不匹配的问题
  2. 如果内存空间不足的问题

1.5.3 设备管理功能

主要任务:

  1. 完成用户进程提出的I/O请求,为用户进程分配所需的I/O设备,并完成指定的I/O操作
  2. 提高CPU与I/O设备的利用率,提高I/O速度,方便用户使用I/O

为了实现以上功能,应具有缓冲管理、设备分配和设备处理以及虚拟设备等功能。

1. 缓冲管理

为了有效的缓和CPU与I/O设备间速度不匹配的问题,提高CPU利用率,于是引入了缓冲管理。

2. 设备分配

设备分配的基本任务是根据用户进程的I/O请求、系统现有资源情况以及按照某种设备分配策略,为之分配其所需的设备。

3. 设备处理

实现CPU和设备控制器之间的通信,即由CPU向设备控制器发出I/O命令,要求他完成指定的I/O操作;反之,由CPU控制从接收器发来的中断请求,并给予迅速的响应和相应的处理。

1.5.4 文件管理功能

主要是对用户文件和系统文件进行管理以方便用户使用,并保证文件的安全性。为此,文件管理应具有对文件存储空间管理、目录管理、文件的读/写管理以及文件的共享与保护等功能。

1. 文件存储空间的管理

为每个文件分配必要的外存空间,提高我村利用率,进而提高文件系统的存、取速度。

2. 目录管理

为每个文件建立一个目录项,目录项包括文件名、文件属性、文件在磁盘上的物理位置等,并对众多的目录项加以有效的组织,以实现方便的按名字存取。

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

根据用户的请求,从外存中读取数据或将数据写入外存。并且保护文件防止其被非法盗取和破坏。

1.5.5 操作系统与用户间的接口

接口主要分为两大类:用户接口和程序接口。用户接口是供用户调用,方便用户直接或间接控制自己的作业。程序接口是为用户程序在执行中访问系统资源而设定的,是用户取得操作系统服务的唯一途径。