操作系统学习笔记

操作系统

1、什么是操作系统?

操作系统是一种运行在内核态的软件,也就是说操作系统本身也是一个软件。那么操作系统作为一个“特殊”的软件,它主要用来做什么呢?

1.2、操作系统的两个作用:

1、为应用程序提供资源的抽象。(也就是说应用程序所需要的硬件资源如:内存、CPU、输入输出设备等由操作系统进行抽象,以接口的方式提供给应用程序调用,应用程序不能直接使用硬件)
2、管理硬件资源。(在相互竞争的程序之间有序地控制对处理器、存储器以及其他I/O接口设备的分配。
使得资源得到合理高效的使用。)
在这里插入图片描述

1.2.1资源的抽象

抽象是管理复杂性的一个关键。好的抽象可以把一个几乎不可能管理的任务划分为两个可管理的部分。其第一部分是有关抽象的定义和实现,第二部分是随时用这些抽象解决问题。操作系统的一个主要任务是隐藏硬件,呈现给程序(以及程序员)良好、清晰、优雅、一致的抽象。操作系统的实际客户是应用程序(当然是通过应用程序员)。它们直接与操作系统及其抽象
打交道。

1.2.2资源管理

把操作系统看作是向应用程序提供基本抽象的概念,是一种自顶向下的观点。按照另一种自底向上的观
点,操作系统则用来管理一个复杂系统的各个部分。现代计算机包含处理器、存储器、时钟、磁盘、鼠标、
网络接口、打印机以及许多其他设备。从这个角度看,操作系统的任务是在相互竞争的程序之间有序地控制
对处理器、存储器以及其他I/O接口设备的分配。也就是对硬件进行管理。
资源管理包括用以下两种不同方式实现多路复用(共享)资源:在时间上复用和在空间上复用。当一种
资源在时间上复用时,不同的程序或用户轮流使用它。先是第一个获得资源的使用,然后下一个,以此类
推。空间复用。每个客户都得到资源的一部分,从而取代了客户排队。例如,通常在若干运行
程序之间分割内存,这样每一个运行程序都可同时入住内存(例如,为了轮流使用CPU)。假设有足够的内
存可以存放多个程序,那么在内存中同时存放若干个程序的效率,比把所有内存都分给一个程序的效率要高
得多,特别是,如果一个程序只需要整个内存的一小部分时,结果更是这样。

2、计算机硬件介绍

在这里插入图片描述

2.1处理器(cpu)

在每个CPU基本周期中,首先从内存中取出指令,解码以确定其类型和操作数,接着执行之,然后取指、解码并执行下一条指令。
也即是CPU的功能就是 取指令–>解码—>执行指令
在这里插入图片描述

2.1.2CPU中的寄存器

为什么要用寄存器?
从内存中获取一个指令或数据的时间要比CPU执行一个指令的时间要长很多。(如果没有寄存器,在上一个指令执行完后CPU要等很长的时间才能执行下一个指令,这样就会降低了CPU的使用效率。)
寄存器的种类及其作用:
1、通用寄存器:
些用来保存关键变量和临时数据的寄存器。
2、是程序计数器
保存了将要取出的下一条指令的内存地址。在指令取出之后,程序计数器就被更新
以便指向后继的指令。
3、堆栈指针
它指向内存中当前栈的顶端。该栈含有已经进入但是还没有退出的每个过程的一个框架。在一个过程的堆栈框架中保存了有关的输入参数、局部变量以及那些没有保存在寄存器中的临时变量。
4、程序状态字(Program Status Word,PSW)寄存器
包含了条件码位(由比较指令设置)、CPU优先级、模式(用户态或内核态),以及各种其他控制位。用户程序通常读入整个PSW,但
是,只对其中的少量字段写入。在系统调用和I/O中,PSW的作用很重要。

操作系统必须知晓所有的寄存器。在时间多路复用(time multiplexing)CPU中,操作系统经常会中止
正在运行的某个程序并启动(或再启动)另一个程序。每次停止一个运行着的程序时,操作系统必须保存所
有的寄存器,这样在稍后该程序被再次运行时,可以把这些寄存器重新装入。

CPU的两种模式:
多数CPU都有两种模式,即前面已经提及的内核态和用户态。通常,在PSW中有一个二进制位控制这两种模式。当在内核态运行时,CPU可以执行指令集中的每一条指令,并且使用硬件的每种功能。操作系统在内核态下运行,从而可以访问整个硬件。相反,用户程序在用户态下运行,仅允许执行整个指令集的一个子集和访问所有功能的一个子集。一般而言,在用户态中有关I/O和内存保护的所有指令是禁止的。当然,将PSW中的模式位设置成内核态也是禁止的。

为了从操作系统中获得服务,用户程序必须使用系统调用(system call)系统调用陷入内核并调用操作系统。TRAP指令把用户态切换成内核态,并启用操作系统。当有关工作完成之后,在系统调用后面的指令把控制权返回给用户程序。

2.2存储系统

在这里插入图片描述
1、存储器系统的顶层是CPU中的寄存器。它们用与CPU相同的材料制成,所以和CPU一样快。
2、下一层是高速缓存,它多数由硬件控制。
3、再往下一层是主存。这是存储器系统的主力。主存通常称为随机访问存储器(Random Access Memory,RAM)。
4、下一个层次是磁盘(硬盘)。磁盘同RAM相比,每个二进制位的成本低了两个数量级,而且经常也有两个数量级大的容量。磁盘惟一的问题是随机访问数据时间大约慢了三个数量级。其低速的原因是因为磁盘是一种机械装置。
5、在存储器体系中的最后一层是磁带。这种介质经常用于磁盘的备份,并且可以保存非常大量的数据集。

2.3IO设备

CPU和存储器不是操作系统惟一需要管理的资源。I/O设备也与操作系统有密切的相互影响。
I/O设备一般包括两个部分:设备控制器和设备本身。控制器是插在电路板上的一块芯片或一组芯片,这块电路板物理地控制设备。它从操作系统接收命令,例如,从设备读数据,并且完成数据的处理。
在许多情形下,对这些设备的控制是非常复杂和具体的,所以,控制器的任务是为操作系统提供一个简单的接口(不过还是很复杂的)。
在这里插入图片描述
每类设备控制器都是不同的,所以,需要不同的软件进行控制。专门与控制器对话,发出命令并接收响应的软件,称为设备驱动程序(device driver)。每个控制器厂家必须为所支持的操作系统提供相应的设备驱动程序。为了能够使用设备驱动程序,必须把设备驱动程序装入到操作系统中,这样它可在核心态中运行。

要将设备驱动程序装入操作系统,有三个途径。第一个途径是将内核与设备驱动程序重新链接,然后重启动系统。许多UNIX系统以这种
方式工作。第二个途径是在一个操作系统文件中设置一个入口,并通知该文件需要一个设备驱动程序,然后重启动系统。在系统启动时,操作系统去找寻所需的设备驱动程序并装载之。第三种途径是,操作系统能够在运行时接受新的设备驱动程序并且立即将其安装好,无须重启动系统。这种方式采用的较少,但是这种方式正在变得普及起来。热插拔设备,诸如USB和IEEE1394设备(后面会讨论)都需要动态可装载设备驱动程序。

每个设备控制器都有少量的用于通信的寄存器。

实现输入和输出的三种方式:
1、在最简单的方式中,用户程序发出一个系统调用,内核将其翻译成一个对应设备驱动程序的过程调用。
2、第二种方式是设备驱动程序启动设备并且让该设备在操作完成时发出一个中断。
3、第三种方式是,为I/O使用一种特殊的直接存储器访问(Direct Memory Access,DMA)芯片,它可以控制在内存和某些控制器之间的位流,而无须持续的CPU干预。

2.3总线

在这里插入图片描述

图中的系统有8个总线(高速缓存、局部、内存、PCI、SCSI、USB、IDE和ISA),每个总线传输速度和功能都不同。

2.4计算机启动

BIOS开始运行—>检查基本设备是否安装和响应---->扫描总线并找出连在上面的设备—>启动设备清单中的设备–>操作系统询问BIOS获取配置信息—>将设备驱动程序调入内核—>初始化相关表格---->创建需要的背景进程(如启动时的log)–>在终端上启动登录程序。

  • 11
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值