带着问题出发相信你看完会有答案
操作系统管理各种计算机硬件,为应用程序提供基础,并充当用户和计算机硬件之间的桥梁,总之操作系统(OS)是指控制和管理整个计算机系统的硬件和软件资源,合理组织、调度计算机工作与资源分配,操作系统为用户和其他软件提供方便接口与运行环境,是计算机系统中最基本的系统软件。
操作系统的基本特征为:并发、共享、虚拟、异步
1.并发
并发指多个事件在同一时间间隔内发生,操作系统中引入进程的目的是使程序能并发执行。
这里注意并发和并行的区别,并发是指在一段时间内宏观是有多道程序在同时执行,但是在某一时刻只有一个程序在运行在微观上这些程序仍然是分时交替执行的。操作系统的并发性通过分时得以实现。
并行性是指系统具有同时运算的特性,需要相关硬件支持能在同一时刻进行多个工作。
2.共享
共享是指系统中的资源可供内存中多个并发执行的进程共同使用,共享方式一般可分为互斥共享方式和同时访问方式。
并发和共享是操作系统最基本的两个特征,两者之间互为存在的条件:
3.虚拟
虚拟指把一个物理上的实体变成若干逻辑上的对应物。操作系统利用了多种虚拟技术实现虚拟处理器、虚拟内存和虚拟外部设备等。
4.异步
多道程序环境允许多个程序并发执行,但由于资源有限,进程的执行并不是一贯到底的而是走走停停已不可预知的速度推进,这就是进程的异步性。
1.系统资源的管理者
2.向用户提供接口
操作系统提供的接口主要分为两类:一类是命令接口,用户利用这些操作命令来组织和控制作业的执行;另一类是程序接口,编程人员可以使用它们来请求操作系统服务。
命令接口
使用命令接口进行作业控制的方式主要有两种,联机控制方式和脱机控制方式。按作业控制方式不同命令接口的方式分为联机命令接口和脱机命令接口。
程序接口
程序接口由一组系统调用组成。用户通过在程序中使用这些系统调用来请求操作系统为其提供服务,如使用外部设备、申请内存等。
3.操作系统用作扩充机器
没有任何软件支持的计算机称为裸机,它仅构成计算机系统的物质基础。操作系统可以将裸机改造成功能更强的机器,因此通常把覆盖了软件的机器称为扩充机器或者虚拟机
1.库函数和系统调用的区别
库函数是语言或者应用程序的一部分,可以运行在用户空间中,系统调用时操作系统的一部分,是内核为用户提供的程序接口,运行在内核空间中,许多库函数会使用系统调用来实现功能。没有使用系统调用的库函数执行效率通常要比系统调用高。因为系统调用时需要上下文切换。
用户态、内核态和特权指令的概念
所谓特权指令就是指计算机中不允许用户直接使用的指令如I/O指令、置中断指令等。在具体实现上将CPU的状态划分为用户态(目态)和核心态(管态、内核态)。当CPU处于核心态可以执行相关特权指令,而处于用户态时CPU只能执行非特权指令。用户所编写的程序只能运行在用户态,操作系统内核程序运行在核心态。
操作系统内核的内容
1.时钟管理
时钟的第一功能是计时,第二功能是通过时钟中断的管理实现进程的切换。
2.中断机制
现代操作系统是靠中断驱动的软件,中断机制中只有一小部分功能属于内核,它负责保护和恢复中断现场信息,转移控制权到相关的处理程序。这样可以减少中断的处理时间,提高系统的并行处理能力。
3.原语
按层次结构设计的操作系统,底层必然是一些可被调用的公用小程序,他们各自完成一个规定的操作特点如下:
一般把这类特点程序称为原语。定义原语的直接方法是关闭中断,让其动作不可分割的完成后再次打开中断。
4.系统控制的数据结构及处理
系统中用来登记状态消息的数据结构有很多,如作业控制块,进程控制块,设备控制块,各类链表,消息队列,缓存区,内存分配表等。为了实现有效管理,系统需要一些基本操作如下
用户态向内核态的转变就依赖中断的帮忙,主要是通过硬件实现的,操作系统依赖中断原因在于操作系统的发展方向主要是提高资源利用率的过程,而资源的充分使用就在于不需要使用时释放,释放行为主要依赖中断帮助完成。
1.中断和异常的定义
中断: 也称外中断指来自CPU指令之外的事件的发生,如设备发出的I/O结束中断,时钟中断(表示一个固定的时间片已到,让处理机处理计时。启动定时任务等)。这一类中断是与当前指令执行无关的事件,它们与当前处理机运行的程序无关。
异常: 也称内中断、例外、陷入,指源自CPU执行指令内部的事件,如程序的非法操作码、地址越界。算术溢出等。对异常的处理需要依赖当前程序的运行现场,而且异常不能被屏蔽,一旦出现必须立即处理。
系统调用是指用户在程序中调用操作系统所提供的的一些子功能,系统调用可视为特殊的公共子程序。系统中各种共享资源都由操作系统统一管理,在用户程序中若想执行与资源有关的操作必须借助系统调用的方式向操作系统提出服务请求,并由操作系统代为完成。系统调用大概可分为如下几类
系统调用的相关功能的完成需要某些特权指令才能完成,需要操作系统由用户态向内核态转变,这么做的目的是用户程序不能直接执行对系统影响非常大的操作,必须通过系统调用的方式请求操作系统代为执行,以便保证系统的稳定性和安全性,防止用户程序随意更改或访问重要的系统资源,影响其他进程的执行。
系统调用的执行流程:
若程序运行由用户态转到内核态,则会用到访管指令,访管指令是在用户态使用的,所以访管指令不是特权指令。
为什么说中断和通道技术的出现,多道程序概念才变得有用?
多道程序的并发执行指的是程序运行可以充分利用资源,当有程序正在利用CPU资源时,有的正在进行I/O操作,这就必须需要中断和通道技术的支持
综上所述,通道技术和中断技术的结合可以实现CPU和I/O设备并行工作,多道程序的概念才变成现实。