1. 操作系统导论

学习操作系统要会的前期知识:基本数据结构与算法、计算机组成、一门编程语言。

操作系统导论

操作系统: 是管理计算机硬件的程序。充当用户和硬件之间的媒介。

问:为什么要有操作系统?
答:为了更好的管理计算机的硬件和编写软件。(由操作系统统一管理硬件,而不是各个应用程序自己来操作硬件)。
本质上讲,计算机就是用来计算的,运行的软件最终也要落实到硬件上。例如word文档编辑软件,如果没有操作系统,那么这个软件既要有接收鼠标和键盘输入的功能,又要有管理硬盘来保存文档的功能,还要控制显示器的输出功能。

计算机领域一个重要的概念就是抽象与分层,所以就有了操作系统这个大管家,来统一管理硬件。还是上面的例子,键盘的输入不会直接到word,键盘设备的输入会到操作系统,由操作系统处理后再传递到word软件。这样word软件也变得好写多了。

接下来将从计算机系统说起,讲到操作系统的各个方面。

1.操作系统的功能

计算机的四个组件:硬件、操作系统、应用程序、用户

  1. 用户视角:使用方便。优化资源的利用率,让计算机的各部分相互配合的更好,让用户体验更好(通俗的讲就是,效率高,不卡)。
  2. 计算机角度:可将操作系统看作是资源分配器。在面对多种任务的时候,操作系统能合理的分配资源(CPU时间、内存空间、文件存储空间、IO设备等)。

2.计算机系统的组成

CPU、设备控制器、总线。
CPU和若干设备控制器通过总线相连接,总线提供共享内存的访问。
1. 操作系统导论_第1张图片

2.1操作系统的运行

CPU取指是到内存中去取,只有把程序加载到内存中才能被执行。

操作系统也是程序,但是它在硬盘里啊,它是怎么被执行的呢?
答:
(1)计算机打开电源,立马运行一个初始程序(也叫引导程序,bootstrap program),一般位于计算机的主板里。
(2)引导程序加载操作系统内核到内存,然后执行内核。
(3)操作系统会启动一些系统进程或后台程序,系统就开始服务了。

操作系统能工作是因为有中断。通过中断来通知操作系统有事件发生,然后操作系统才根据中断来决定要做的事情,要是没有中断,操作系统就不会执行,无所事事。

2.2 存储结构

上面说到CPU只去内存中取指令,所以程序必须被加载到内存中。可以把要执行的程序统统放到内存中,但是(1)内存的容量有限,价格昂贵(2)内存是易失性的,即掉电丢失。
所以要把程序先存到掉电不丢失且容量大,便宜的磁盘或硬盘中,等要运行程序时,把程序从硬盘加载到内存再取指令执行。
1. 操作系统导论_第2张图片

2.3 I/O结构

存储器也是属于IO设备。
CPU通过总线与设备控制器相连。
操作系统为每个设备控制器提供一个设备驱动程序。
设备控制器负责相关设备与本地缓冲存储之间进行数据传递。(注:)

3.计算机系统的体系结构

单处理器:一个通用CPU。
多处理器:(1)主从关系(2)对等关系。
多个CPU或者多个计算核(多核处理器)。

4.操作系统的结构

前面讨论了计算机系统的组成和体系结构,下面说说操作系统。

操作系统最重要的能力就是多道程序并发运行的能力。
多道程序设计就是使CPU在一段时间内可以执行多个程序,而不是彻底执行完A程序,再去执行B程序。运行中的程序称为进程

  1. 进程管理(1)何时停止执行一个进程,(2)如何切换别的进程来执行,(3)内存中那么多的程序都可以执行,决定执行哪一个。这就需要操作系统来进行进程管理
  2. 内存管理(1)程序保存在磁盘或硬盘等外存储器中,要加载到内存才能被执行,那么多程序加载到内存中如何存放,(2)加载完整的程序还是只加载一部分(3)何时把内存中的程序移除内存。这就需要操作系统的内存管理
  3. 存储管理(1)用户操作数据是通过文件的形式,而在存储设备上就是二进制位。(2)如何找到文件,通过目录,文件的形式(3)如何保障多用户使用时,文件是安全的。这就需要操作系统的存储管理
  4. IO控制

5.操作系统的执行

现代操作系统时中断驱动的,如果没有中断,就代表没有事件发生,操作系统就默默地等待着。
操作系统的权力很大,能执行一些特权指令,而用户程序则不能。

为了确保操作系统的正确运行,分为两种模式:用户模式、系统模式
计算机硬件通过一个模式位来表示当前的模式。

用户模式就是CPU执行用户代码。系统模式就是CPU执行操作系统的代码。
有了多种模式,用户代码的权力就会受到限制,就不会因为出错而导致整个系统的错乱。

6.进程管理

执行的程序称为进程。/为了完成任务,进程需要一些资源,如CPU时间、内存、文件、IO设备。
操作系统负责进程管理的以下功能:

  • 在CPU上调度进程和线程
  • 创建和删除用户进程和系统进程
  • 挂起和重启进程
  • 提供进程同步机制
  • 提供进程通信机制

7.内存管理

  • 记录内存的哪部分在被使用以及被谁使用
  • 决定哪些进程(或其部分)会调入或调出内存
  • 根据需要分配和释放内存

8.存储管理

8.1文件系统

  • 创建和删除文件
  • 创建和删除目录,以便组织文件
  • 提供文件和目录的操作原语
  • 映射文件到内存
  • 备份文件到稳定的存储介质

8.2大容量存储器管理

  • 空闲空间管理
  • 存储空间分配
  • 硬盘调度

8.3高速缓存

由于局部性原理,高级缓存能极大的提高计算机的效率。
高速缓存的设计必须很精妙,才能发挥出它的性能。

8.4 IO系统

操作系统要为用户隐藏具体硬件设备的特性。

  • 包括缓冲、高速缓存和假脱机的内存管理组件
  • 设备驱动器的通用接口
  • 特定硬件设备的驱动程序

9.保护与安全

计算机有多个用户,而且多个进程并发执行。就要确保各个用户互不干扰且安全可靠。
UNIX中有用户ID,组ID。

一个文件有三种权限:所有者、组用户、其他用户。

10.内核数据结构

在操作系统内核中常用的一些基本的数据结构:
列表、栈、队列、树、哈希表、位图。

11.计算环境

  • 传统计算
  • 移动计算(笔记本电脑,手机……)
  • 分布计算
  • 客户机-服务器
  • 对等计算
  • 虚拟化
  • 云计算
  • 嵌入式系统

12.开源操作系统

Linux、BSD UNIX、Solaris……

13.小结

本章是导论的知识,对操作系统的大体认识和形成一个整体框架。
了解计算机系统的组成和操作系统的组成及其各部分的功能。

你可能感兴趣的:(《操作系统概念》)