操作系统【引论】

  操作系统(Operating System, OS)是配置在计算机硬件上的第一层软件,是对硬件系统的首次扩充。主要作用是管理好这些设备,提高它们的利用率和系统的吞吐量,并未用户和应用程序提供一个简单的接口,便于用户使用。OS是现代计算机系统中最基本和最重要的系统软件,而其它的诸如编译程序、数据库管理系统等系统软件,以及大量的应用软件,都直接依赖于操作系统的支持,取得它所提供的服务。事实上OS已成为现代计算机系统、多处理机系统、计算机网络中都必须配置的系统软件。

操作系统的目的和作用

目的:

  1.方便性:使用编译命令将用户采用高级语言书写的程序翻译成机器代码。

  2.有效性:第一层含义是提高系统资源的利用率;另一层含义是提高系统的吞吐量。

  3.可扩充性

  4.开放性:指系统能遵循世界标准规范,特别是遵循对OS的开放性系统互连OSI国际标准。

作用:

  1.OS作为用户与计算机硬件系统之间的接口

  2.OS作为计算机系统资源的管理者

  3.OS实现了对计算机资源的抽象

 发展过程

  1.人工操作方式:用户独占全机,CPU等待人工操作。

  2.脱机输入输出方式:事先将装有用户程序和数据的纸带装入纸带输入机,在外围机的控制下,把纸带上的数据输入到磁带上(类似于磁盘)。当CPU需要时,从磁带将其高速地调入内存。反之类同。

    优点:减少了CPU的空闲时间,提高了I/O速度。

  3.单道批处理系统:首先监督程序将磁带第一个作业装入内存,运行控制权在该作业,该作业处理完成时,控制权交回到监督程序,再由监督程序把磁带上的第二个作业调入内存。系统自动对作业成批处理。(内存始终只保持一道作业—单道批处理)。

    缺点:内存浪费,不能充分利用系统资源。

  4.多道批处理系统:用户所提交的作业先存放在外存,排成一个“后备队列”,再由作业调度程序按一定的算法从队列选择若干作业调入内存,使他们共享CPU和系统中的各种资源。

    缺点:资源利用率提高,系统吞吐量大,平均周转时间长,无交互能力。

  5.分时系统:在一台主机上连接了多个带有显示器和键盘的终端,同时允许多个用户通过自己的终端,以交互方式使用计算机,共享主机中的资源。因此,作业直接进入内存,采用轮转运行方式,系统配置一个多路卡(实现分时多路复用),及时接收用户终端命令(数据)。

    特征:多路性、独立性、及时性、交互性。

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

    特征:多路性(周期性信息采集,多个对象或执行机构进行控制)、独立性、及时性、交互性、可靠性(多级容错措施)。

 基本特征

  1.并发性:

    引入进程:提高了系统资源的利用率和系统吞吐量,并改善了系统的性能

    引入线程:对它的调度所付出的开销比进程小的多,能更高效地提高系统内多个程序间并发执行的cheng程度。

  2.共享性:

    互斥共享方式:在一段时间内只允许一个进程访问的资源称为临界资源或独占资源。

    同时访问方式:允许在一段时间内由多个进程同时对它们进行访问。

  3.虚拟技术:通过技术把一个物理实体变为若干个逻辑上的对应物

    1)时分复用技术:利用处理机的空闲时间运行其他程序,提高处理机的利用率

    2)空分复用技术:利用存储器的空闲时间存放其他程序,提高内存的利用率

  4.异步性:进程以不可预知的速度向前推进

主要功能:

  1.处理机管理功能:

    1)进程控制:创建和撤销进程,分配资源、资源回放、控制进程运行过程中的状态转换

    2)进程同步:为多个进程运行协调

      进程互斥:为每个临界资源配置一把锁、进程同步

    3)进程通信:实现相互合作之间的进程之间的信息交换

    4)调度:作业调度,进程调度

  2.存储器管理功能:

    存储器管理的主要任务:为多道程序的运行提供良好的环境,方便用户使用存储器,提高存储器的利用率,并能从逻辑上扩充内存。

    1)内存分配:静态分配、动态分配

    2)内存保护:确保每道用户程序都只在自己的内存空间内运行,彼此互不干扰。一种简单的内存保护机制是设置两个界限寄存器

    3)地址映射:将地址空间中的逻辑地址转换为内存空间中与之对应的物理地址

    4)内存扩充:借助于虚拟存储技术,逻辑上扩充内存容量

  3.设备管理功能:

    设备管理的主要任务:完成用户进程提出的I/O请求,为其分配所需的I/O设备;提高CPU和I/O设备的利用率,提高I/O速度,方便用户使用I/O设备

    1)缓存管理:缓和CPU和I/O设备速度不匹配的矛盾

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

    3)设备处理:用于实现CPU和设备控制器之间的通信

  4.文件管理功能:

    文件管理的主要任务:对用户文件和系统文件进行管理,方便用户使用,并保证文件的安全性

    1)文件存储空间的管理:为每个文件分配必要的外存空间,提高外存的利用率,并能有助于提高文件系统的存、取速度

    2)目录管理:为每个文件建立其目录项,并对众多的目录项加以有效的组织,以实现方便按名存取,即用户之须提供文件名便可对该文件进行存取

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

  5.操作系统与用户之间的接口:

    1)用户接口

    2)程序接口

系统调用:

  如果一个进程在用户态需要使用内核态的功能,就进行系统调用从而陷入内核,由操作系统代为完成。Linux的系统调用主要有以下这些:

    进程控制:fork();  exit();  wait();

    进程通信:pipe();  shmget();  mmap();

    文件操作:open();  read();  write();

    设备操作:ioctl();  read();  write();

    信息维护:getpid(); alarm(); sleep();

    安全:chmod();  umask();  chown();

OS结果设计:

  传统的操作系统结构:

    无结构操作系统 ——> 模块化结构OS ——> 分层式结构OS

  1.大内核:

    大内核实将操作系统功能作为一个紧密结合的整体放到内核。由于各模块共享信息,因此有很高的性能。

  2.微内核:

    由于操作系统不断复杂,因此将一部分操作系统功能移出内核,从而降低内核的复杂性。移出的部分根据分层的原则划分成若干服务,相互独立。在微内核结构下,操作系统被划分成小的、定义良好的模块,只有微内核这一个模块运行在内核态,其余模块运行在用户态

  微内核OS机构:

    1)足够小的内核

    2)基于客户/服务器模式

    3)应用”机制与策略分离“原理

    4)采用面向对象技术

  微内核的基本功能:

    1)进程(线程)管理

    2)低级存储器管理

    3)中断和陷入处理

  微内核操作系统存在的问题:运行效率低

  微内核OS的效率降低的最主要原因:

    频繁的在用户态和核心态之间进行切换。即在完成一次客户对OS提出的服务请求时,需要利用消息实现多次交互和进行用户/内核模式以及上下文的多次切换

中断分类:

  外中断:

    由CPU执行指令以外的事件引起,如I/O完成中断,表示设备输入/输出处理已经完成,处理器能够发送下一个输入/输出请求。此外还有时钟中断、控制台中断等。异常由CPU执行指令的内部事件引起,如非法操作码、地址越界、算术溢出等。陷入在用户程序中使用系统调用。

人生就是要不断折腾
原文地址:https://www.cnblogs.com/xiangxiaolin/p/13289007.html