概述
1.1 操作系统的基本概念
- 并发和共享是操作系统两个最基本的特征,虚拟和异步也是。
- 操作系统管理计算机硬件软件资源,如CPU,内存,外存,不管理源程序。
- 系统软件包括:操作系统、数据库管理系统、语言处理程序、服务性程序、标准库程序。
- 并发性是指若干事件在同一事件间隔内发生,而并行性是指若干事件在同一时刻发生。
- 操作系统主要向用户提供命令接口和程序接口(系统调用),此外还提供图形接口:其实图形接口其实是调用了系统调用而实现的功能。
- 操作系统位编程人员提供的接口是程序接口,即系统调用。
- 库函数是高级语言中提供的与系统调用对应的函数(也有些库函数与系统调用无关),目的是隐藏“访管”指令的细节,使系统调用更加方便抽象。但是库函数属于用户程序而非系统调用,是系统调用的上层。
- 系统调用是由操作系统提供给用户的,它只能通过用户程序间接使用。它是操作系统位应用程序使用内核功能所提供的接口。
- 系统调用的目的是请求系统服务。
- 操作系统与用户通信接口通常包括:shell、命令解释器、广义指令,不包括缓存管理命令。广义指令就是系统调用命令。命令解释器属于命令接口。shell是命令解释器,也属于命令接口。操作系统不提供管理系统缓存的系统调用。
- 引入多道程序设计后,程序执行就失去了封闭性和顺序性。程序的执行因为共享资源以及相互协同的原因产生了竞争,相互制约。考虑到竞争的公平性,程序的执行是断续的。顺序性是单道程序设计的基本特征。
- 库函数与系统调用的区别和联系
库函数是语言或应用的一部分,可以运行在用户空间中。而系统调用是操作系统的一部分,是内核为用户提供的程序接口,运行在内核空间中,而且许多库函数都会使用系统调用来实现功能。未使用系统调用的库函数,其执行效率通常比系统调用高。因为使用系统调用时需要上下文的切换和状态的转换(由用户态转向核心态)
1.2 操作系统的发展与分类
- 批处理系统:允许多个用户将若干作业提交给计算机系统集中处理的操作系统;脱机工作;多道程序并发执行;交互能力差。
- 分时操作系统:允许多个用户以交互的方式使用计算机的操作系统;交互性强、响应及时。
- 实时操作系统:计算机系统能及时处理由过程控制反馈的数据;可靠性高,响应及时但是资源利用率低。
- 微型计算机操作系统:IBM-PC
1.3 操作系统的运行环境
-
通用操作系统使用时间片轮转调度算法,用户运行程序并不需要预先语定运行时间。
-
操作系统执行程序时,必须从起始地址开始执行。
-
编译器是操作系统的上层软件,不是操作系统需要提供的功能
-
批处理的主要缺点是缺少交互性
-
输入/输出指令需要中断操作,中断必须在核心态下执行。
-
多道性是为了提高系统利用率和吞吐量而提出的。
-
I/O通道是一种特殊的硬件处理器,她具有执行I/O指令的能力,并通过执行通道程序来控制I/O操作。
-
用户程序设计时,使用系统调用命令,该命令经过编译后,形成若干参数和陷入(trap)指令。程序设计无法形成屏蔽指令。
-
中断处理是操作系统必须提供的功能,在核心态执行。
-
用户程序在用户态下要使用的特权指令引起的中断属于访管中断。
-
内核可以执行处理器能执行的任何指令,用户程序只能执行除特权以外的指令,所以特权指令只能由内核即操作系统使用。
-
中断系统和地址映射都需要硬件支持,因为他们中的重定位都是离不开硬件支持的。时钟管理是直接由硬件完成的。进程调度由调度算法决定CPU使用权,由操作系统实现,无需硬件支持。
-
计算机通过硬件中断机制完成由用户态到核心态的转换。
-
缺页处理和时钟中断都属于中断,在核心态执行,进程调度是操作系统内核进程,无须用户干预,在核心态执行。命令解释程序属于命令接口,在用户态执行。
-
系统调用是操作系统提供给用户的接口,系统调用发生在用户态,被调用程序在核心态执行。外部中断是用户态到核心态的门,也发生在用户态,但在核心态完成中断过程。缺页产生后,在用户态发生缺页中断,然后进入核心态执行缺页中断服务程序。
-
置时钟指令只能在核心态下执行
-
访管指令仅在用户态下使用,执行它将用户态转变成核心态。用户态不能执行特权指令。在核心态下CPU可以执行指令系统中的任何指令。
-
广义指令可在用户态调用,但只能在核心态执行。输入输出在核心态执行。
-
整数除零和read系统调用函数在内核态执行,sin()函数调用在用户态执行。
-
子程序调用只需保存程序断点,即该指令下的下一条指令的地址;中断调用子程序不仅要保存断点(PC的内容),假药保存程序状态字寄存器(PSW)的内容。在中断处理中,最重要的两个寄存器是PC和PSWR.
-
trap、跳转、压栈指令均可以在用户态执行,关中断指令必须在核心态。
-
内部异常的产生与当前执行指令相关,其检测由CPU内部逻辑实现,其响应发生在指令执行过程中。其处理后不一定会回到发生异常指令并继续执行,如除数为0和自行中断都会自动跳过中断指令。
-
中断时来自CPU以外的事件,与当前程序运行无关;异常也称内中断、例外、陷入,源自CPU执行指令内部的事件,如地址越界、溢出、缺页等。
-
外部中断处理的过程中,PC值由中断隐指令自动保存,而通用寄存器内容由操作系统保存。
-
执行系统调用的过程:正在运行的进程先传递系统调用参数,由陷入指令负责将用户态转换为内核态,并将返回地址压入堆栈以后备用,接下来CPU执行相应的内核态服务程序,最后返回用户态。
-
处理器为什么要区分核心态和用户态?什么情况下切换?
区分执行态的目的是保护系统程序。用户态到核心态的转换发生在中断产生时,而核心态到用户态的转换则发生在中断返回用户程序时。 -
为啥说知道出现中断和通道技术后,多道程序概念才变得有用?
因为两者结合起来就可以实现CPU和I/O设备并行工作,即CPU启动通道传输数据后便去执行其他程序的计算工作,而通道则进行输入输出操作;当通道工作结束时,再通过中断机构向CPU发处中断请求,CPU则暂停手中的操作,对中断进行处理,之后再继续原来的工作。这样就正真做指导了并行工作。多道程序的概念才变成现实。
1.4 操作系统的体系结构
见思维导图
最后
以上就是轻松手套为你收集整理的操作系统 | 计算机系统概述的全部内容,希望文章能够帮你解决操作系统 | 计算机系统概述所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复