现代操作系统

操作系统提取处理器的概念来建立进程的抽象,提取物理存储器的概念来建立进程(虚拟)地址空间的抽象,提取磁盘的概念来建立文件的抽象。

操作系统

  1. 是一种运行在内核态的软件,为应用程序提供一个资源集的清晰抽象,并管理这些硬件资源。

  2. 操作系统是向应用程序提供基本抽象的概念(自顶向下)。

  3. 操作系统是在相互竞争的程序之间有序地控制对处理器,储存器以及其他I/O接口设备的分配(自底向上)。

  4. 操作系统扩张了计算机指令集并管理计算机的资源。

抽象

  1. 抽象是管理复杂性的一个关键。

  2. 可以把一个几乎不可能管理的任务划分为两个可管理的部分。

  3. 其一是有关抽象的定义和实现。

  4. 其二是随时用这些抽象解决问题。

资源管理包括两种不同方式实现多路复用(共享)资源

  1.时间上复用

    不同的程序或用户轮流使用它,先是第一个获得资源的使用,然后下一个。(如何实现--操作系统的任务)

  2.空间上复用

    每个客户都得到资源的一部分,从而取代了客户排队。在若干运行程序之间分割内存,每个运行程序都可同时入住内存。(引起公平,保护问题--操作系统解决)

简单了解硬件

  

  cpu:

    从内存中取出指令并执行

    每个cpu都有其一套可执行的专门指令集

    每个cpu内都有一些用来保存关键变量和临时数据的储存器

    过程:

      在指令集中提供一些指令,将一个字从内存调入寄存器,以及将一个字从寄存器存入内存,其他的指令集可以把来自寄存器,内存的操作数组合,或者用两者产生一个结果。

    

  储存器:

    

    储存器系统的顶层是cpu中的寄存器

    下一层是高速缓存,由硬件控制,主存被分割成高速缓存行(每一级高速缓存比前一级慢且容量更大)。

      L1缓存总是在cpu中,通常用来将已解码的指令调入cpu的执行引擎。

      L2缓存用来存放近来所使用过若干兆字节的内存字(平凡使用的数据字)。

    下一层是主存,储存器系统的主力。

    下一层是磁盘,磁盘是一种机械装置

    最后一层是磁带,经常用于磁盘的备份,并且可以保存非常大量的数据集。

  I/O设备:

    设备控制器:从操作系统接受命令,从设备获取数据,并且完成数据的处理。

      每类设备控制器都是不同的,所以,需要不同的软件进行控制,专门与控制器对话,发出命令并接收响应的软件,称为设备驱动程序(装入操作系统,可在核心态中运行)。

    设备:本身有一个相对简单的接口,已经被标准化了。

    实现输入和输出的方式:

      1. 用户程序发出一个系统调用,内核将其翻译成一个对应设备驱动的调用,然后设备驱动程序启动I/O并在一个连续不断的检查该设备,当I/O结束后,设备驱动程序吧数据送到指定的地方,并返回,然后系统返回给调用者,称为忙等待(busy waiting),缺点就是要占据cpu,cpu一直轮询设备直到操作完成。

      2. 设备驱动程序启动设备并且让该设备在操作完成时发出一个中断,设备驱动程序在这个时刻返回,操作系统接着在需要阻塞调用者并安排其他工作进行,当设备驱动程序检测到该设备的操作完毕时,它发出一个中断通知操作完成。

      

      3. 为I/O使用一种特殊的直接储存器访问(direct memory access,DMA)芯片,可以控制在内存和某些控制器之间的位流,而无须持续的cpu干预。cpu对dma芯片进行设置,说明需要传送的字节数,有关的设备和内存地址以及操作方向,接着启动dma,当mda芯片完成时,它引发一个中断,其处理方式如钱所述。

    中断:中断经常会在非常不合适的时刻发生,比如,在另一个中断程序正在运行时发生,正由于此,cpu有办法关闭中断并在稍后再开启中断,在中断关闭时,任何已经发出中断的设备,可以继续保持其中断信号,但是cpu不会关中断,如果在中断关闭时,已有多个设备发出中断,中断控制器将决定先处理那个中断,通常这取决于事先赋予每个设备的静态优先级,最高优先级的设备先执行。 

  总线:

    是cpu、内存、输入、输出设备传递信息的公用通道,主机的各个部件通过总线相连接。

  进程:

    本质上是正在执行的一个程序,与之相关的是进程的地址空间(存放有可执行程序,程序的数据,程序的堆栈)。与每个进程相关的还有资源集,包括寄存器(程序计数器,堆栈指针),进程基本上是容纳运行一个程序所需要所有信息的容器。

    合作完成某些作业的相关进程经常需要彼此通信以便同步他们的行为,这就是进程间通信(imterprocess communication)。

 

长期储存信息三个要素:

   运行大型应用程序时,能够储存大量信息

   进程终止时,有的信息仍然存在

   多个进程并发存取有关信息

文件

  文件是进程创建的信息逻辑单元

  进程可以读取已经存在的文件,并在需要时创建新的文件

  文件是受操作系统管理的,操作系统中处理文件的部分称为文件系统(file system)

  文件类型:

    字符特殊文件(character special file):

    块特殊文件(block special file):

    普通文件(regular file)

      ASCII文件:由多行正文组成

      二进制文件:操作系统可执行文件

  文件属性:

    文件都有文件名和数据。另外,所有操作系统还会保存其他与文件相关的信息,如文件创建的日期和时间,文件大小等,这些附加信息称为文件属性(attribute),也称为元数据(metadata)。

  文件操作:

    使用文件的目的是储存信息并方便以后的检索。

文件系统:

  布局:文件系统存放在磁盘上,多数磁盘划分为一个或多个分区,每个分区中有一个独立的文件系统。磁盘的0号扇区称为主引导记录(master boot record,MBR),用来引导计算机。在mbr的结尾是分区表。该表给出了每个分区的起始和结束地址。表中的一个分区被标记为活动分区。在计算机被引导时,BIOS读入并执行MBR。MBR做的第一件事是确定活动分区,读入它的第一块,称为引导块(boot block),并执行。引导块中的程序将装载该分区中的操作系统。

  

  实现:连续分配;链表分配;在内存中采用表的链表分配

  目录系统的主要功能是吧ASCII文件名映射成定位文件数据所需的信息。

  日志结构文件系统(log-structured file system):对于一个大部分由零碎的随机写操作组成的任务,同样能够充分利用磁盘的带宽。其基本思想是将整个磁盘结构化为一个日志。每隔一段时间,或是有特殊需要时,被缓冲在内存中的所有未决的写操作都被放到一个单独的段中,作为在日志末尾的一个邻接段写入磁盘。

  虚拟文件系统(vritual file system):概念尝试将多种文件系统统一成一个有序的框架。关键的思想就是抽象出所有文件系统有共有的部分,并将这部分代码放在单独的一层,该层调用底层的实际文件系统来具体管理数据。

  

    所有和文件相关的系统调用在最初的处理上都指向虚拟文件系统。虚拟文件系统对用户进程有个“更高层”接口(POSIX接口),也有对实际文件系统的“更低层”接口(VFS接口)。

  文件系统类型:

    CD-ROM;ISO 9660;MS-DOS;UNIX V7;exit3;exit4;xfs

 

输入和输出

  I/O设备:

    块设备(block device):把信息储存在固定大小的块中,每个块有自己的地址。

    字符设备(characler device):以字符为单位发送或接受一个字符流,是不可寻址的。

  I/O设备:

    机械部件:

    电子部件:设备控制器(device controller)或适配器(adapter)

      设备控制器有几个寄存器用来与cpu进行通信,还有一个操作系统可以读写的数据缓冲区。

    RAID基本思想:

      将一个装满了磁盘的盒子安装到计算机上,用RAID控制器替换磁盘控制器卡,将数据复制到整个RAID上,然后继续常规的操作。

    直接存储器存取:

        cpu可以从I/O控制器每次请求一个字节的数据,但这样浪费时间,所以经常用一种称为直接储存器的不同方案。

    中断控制器

    磁盘控制器的高速缓存完全独立于操作系统的高速缓存。

    稳定存储器:一个磁盘的子系统具有如下特性:当一个写命令发给它时,磁盘要么正确的写数据,要么什么也不做,让现有的数据完整无缺的留下。并且是在软件中实现的。目标是保持磁盘的一致性。

     定时器(timer):负责维护时间,并防止一个进程垄断cpu。

      时钟硬件

      时钟软件

资源:就是随着时间的推移,必须能获得使用以及释放的任何东西。

  可抢占资源

  不可抢占资源

    死锁:如果一个进程集合中的每个进程都在等待只能由该进程集合中的其他进程才能引发的事件,那么该进程集合就是死锁的

    死锁条件:互斥;占有和等待;不可抢占;环路等待

 

 

 

    

    

    

  

    

 

  

posted @ 2018-08-06 15:23  wwchihiro  阅读(413)  评论(0编辑  收藏  举报