第一章 引论

第一章 引论

1.1 什么是操作系统

软件中最基础的部分是操作系统,它运行在内核态(也称为管态、核心态)。在这个模式中,操作系统具有对所有硬件的完全访问权,可以执行机器能够运行的任何指令。软件的其余部分运行在用户态下。在用户态下,只使用了机器指令中的一个子集。特别是那些会影响机器的控制或可进行I/O的操作指令,在用户态中的程序是禁止的。

操作系统是运行在内核态的软件,为程序猿提供资源集抽象以及管理硬件。

1.1.1 作为扩展机器的操作系统

负责对系统的硬软件资源实施有效的控制和管理,提高系统资源的利用率。

1.1.2 作为资源管理者的操作系统

主要任务:记录那个程序在用什么资源,管理资源分配,评估使用代价,调节冲突

负责对系统的硬软件资源实施有效的控制和管理,提高系统资源的利用率。

1.1.3 操作系统的作用

  1. 从一般用户的观点来看,操作系统是用户与计算机硬件系统之间的接口。用户并不直接与计算机硬件打交道,而是通过操作系统提供的命令,系统功能调用以及图形化接口来使用计算机。
  2. 从资源管理的观点来看,操作系统使计算机资源的管理者。处理机的分配和控制,内存的分配和回收,I/O设备的分配和处理,文件的存取,共享和保护工作都是由操作系统完成的。
  3. 从虚拟机的观点来看,操作系统是扩充裸机(没有配置软件的计算机)功能的软件。在裸机上覆盖操作系统后,裸机将变成一台功能更强大使用更方便的虚拟机。
  4. 从任务组织的观点来看,操作系统是计算机工作流程的组织者。它负责在众多作业间切换处理机,并协调它们的推进速度,从而进一步提高系统的性能。

1.1.5 操作系统的设计目标

  1. 方便性:操作系统使计算机系统更易于使用
  2. 有效性:操作系统使计算机资源的使用更有效,即使资源的利用率更高
  3. 可扩充性:操作系统必须能方便地开发,测试和引进新的系统功能,以适应计算机硬件和体系结构的迅速发展以及应用不断扩大的要求
  4. 开放性:操作系统必须能提供统一开放的环境,以使其应用在不同的系统中具有可移植性,并使不同的系统能够通过网络进行集成,从而能正确,有效地协同工作

1.1.6 操作系统的5大功能

  1. 进程管理功能
  2. 存储管理功能
  3. 设备管理功能
  4. 文件管理功能
  5. 作业管理功能

1.3 计算机硬件简介

1.3.1 处理器

1.操作系统必须知道所有的寄存器,以便中断时保存进度

2.用户程序在用户态运行时,仅允许执行至灵级的一个子集,一般不能调用IO和内存保护指令

3.陷阱:

  • 用于执行系统调用
  • 多数由硬件引起,用于警告异常

4.超线程:无并行处理,线程切换纳秒级

计算机的大脑是CPU,它从内存中取出指令并执行。在每个CPU基本周期中,首先从内存中取出指令,解码以确定其类型和操作熟,接着执行之,然后取指、解码并执行下一条指令。

**寄存器:**在CPU内部用来保存关键变量和临时数据。种类:程序计数器、堆栈指针、程序状态字

1.3.2 存储器

寄存器:它们用与CPU相同的材料制成,所以和CPU一样快,访问没有延时

高速缓存:其作用是为了更好的利用局部性原理,减少CPU访问主存的次数。简单地说,CPU正在访问的指令和数据,其可能会被以后多次访问到,或者是该指令和数据附近的内存区域,也可能会被多次访问。因此,第一次访问这一块区域时,将其复制到cache中,以后访问该区域的指令或者数据时,就不用再从主存中取出。现代CPU中设计了两个缓存:L1缓存和L2缓存,两者的差别在于时序,对于L1缓存的访问,不存在任何延时;而对于L2缓存的访问,则会延时1或2个时钟周期。

主存:也称为随机访问存储器(RAM),所有不能在高速缓存中得到满足的访问请求都会转往主存。

1.3.3 磁盘

磁盘唯一的问题是随机访问数据时大约慢了三个数量级。其低速的原因是因为磁盘是一种机械装置。

1.3.4 I/O设备

下图是中断处理步骤:

I/O设备一般包括两个部分:设备控制器和设备本身

1.3.5 总线

系统中有很多总线,每条总线的传输速度和功能都不同。

1.3.6 启动计算机

加电 --> BIOS检查硬件 --> BIOS查询启动设备(设备第一扇区用启动签名才可以作为启动设备)–> 硬盘第一区(MBR),分区表,超级块等。

1.5 操作系统概念

1.5.1 进程

狭义定义:进程本质上是正在执行的一个程序,程序一旦运行就是进程。

广义定义:进程是具有独立功能的程序关于某个数据集合的一次运行过程。它是操作系统动态执行的基本单元,在传统的操作系统中,进程既是基本的分配单元,也是基本的执行单元。进程由**程序、数据和进程控制块(PCB)**三部分组成。

  1. 进程的特征:

在某一个瞬间,CPU只能运行一个进程。但在1秒钟内,它可以运行多个进程,这样就产生并行的错觉。真正的CPU在各个进程之间来回切换,称为多道程序设计。

动态性:进程的实质是程序在多道程序系统中的一次执行过程,进程是动态产生,动态消亡的。

并发性:任何进程都可以同其他进程一起并发执行

独立性:进程是一个能独立运行的基本单位,同时也是系统分配资源和调度的独立单位;

异步性:由于进程间的相互制约,使进程具有执行的间断性,即进程按各自独立的、不可预知的速度向前推进

  1. 进程的三种基本状态

就绪状态:进程已获得除处理器外的所需资源,等待分配处理器资源,只要分配了处理器进程就可执行**(可运行,但因为其他进程正在运行而暂时停止)**

运行状态:进程占用处理器资源,处于此状态的进程的数目小于等于处理器的数目(该时刻进程实际占用CPU)

阻塞状态:由于进程等待某种条件(如I/O操作或进程同步),在条件满足之前无法继续执行。该事件发生前即使把处理机分配给该进程,也无法运行(除非某种外部事件发生,否则进程不能运行)

  1. 进程的创建和终止

导致进程创建的事件:系统初始化;正在运行的程序执行了创建进程的系统调用;用户请求创建一个新进程;一个批处理作业的初始化

在UNIX系统中,只有一个系统调用可以用来创建新的进程:folk

导致进程终止的事件:正常退出(自愿的);出错退出(自愿的);严重错误(非自愿);被其他进程杀死(非自愿)

1.5.2 地址空间

对于程序来说,内存是远远不够。一方面希望能尽可能多的活跃用户程序装入内存,另一方面系统内存资源有限。所以需要对内存资源进行协调分配和管理,最大限度的充分使用各个存储资源。

由于每个存储介质的特性不尽相同。一般存取速度快的存储介质其成本也会更高,存储空间小,易失性也高(比如高速缓存)。而相对低成本的存储介质如磁盘容量大,不易丢失,但是存取速度比内存慢几个数量级。所以具体问题具体分析,依据各个存储介质的特点建立了分层存储体系。如下图金字塔所示:

操作系统是将这个存储体系抽象为一个有用的模型并管理这个抽象模型。操作系统中管理分层存储体系的部分称为存储管理器。它的任务是有效地管理内存,即记录哪些内存是正在使用的,哪些内存是空闲的,在进程需要时为其分配内存,在进程使用完后释放内存。并且负责内存与磁盘之间交换。存储管理器(MMU)的主要作用参见下面截图:

地址空间:是一个进程可用于寻址内存的一套地址集合。

使用地址空间对存储器进行抽象,主要是为了实现多道程序设计,即实现多个程序可以装入内存且互不干扰。每个进程都有自己独立的地址空间。

为了实现多道程序设计,曾有采用交换技术,基址寄存器与界限寄存器,虚拟内存等来实现。目前主要采用的是虚拟内存的方法。

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值