4.本章疑难点
1.并行性与并发性的区别和联系
并行性和并发性是相似又有区别的两个概念,
并行性具指两个成多个事件在同一时刻发生,
并发性是指两个或多个事件在同一时间间隔内发生。
在多道程序环境下,并发性是指在一段时间内,宏观上有多个程序同时运行,但在单处理器系统中每个时刻却仅能有一道程序执行,因此微观上这些程序只能分时地交替执行。
若在计算机系统中有多个处理器,则这些可以并发执行的程序便被分配到多个外理器上,实现并行执行,利用每个处理器来处理一个可并发执行的程序。
2.特权指令与非特权指令
所谓特权指令,是指有特殊权限的指令,由于这类指令的权限最大,使用不当将导致救个系统崩溃,如清内存、置时钟、分配系统资源、修改虚存的段表或页表、修改用户的访问权限等。
若所有程序都能使用这些指令,则系统一天死机n次就不足为奇。为了保证系经安全,这类指今日能用于操作系统或其他系统软件,不直接提供给用户使用。因此,特权指令必须在核心态执行。实际上,CPU在核心态下可以执行指令系统的全集。形象地说,特权指令是那些儿童不宜的东西,而非特权指令则老少皆宜。
为了防止用户程序中使用特权指令,用户态下只能使用非特权指今,核心态下可以使用全部指令。在用户态下使用特权指令时,将产生中断以阻止用户使用。所以把用户程序放在用户态下运行,而操作系统中必须使用特权指令的那部分程序在核心态下运行,保证了计算机系统的安全可靠。从用户态转换为核心态的唯一途径是中断或异常。
3.访管指令与访管中断
访管指令是一条可以在用户态下执行的指令。在用户程序中,因要求操作系统提供服务而有意识地使用访管指令,从而产生一个中断事件(自愿中断),将操作系统转换为核心态,称为访管中断。访管中断由访管指令产生,程序员使用访管指令向操作系统请求服务。
为什么要在程序中引入访管指今呢?这是因为用户程序只能在用户态下运行,若用户的部分工作在用户态下无法完成,该怎么办?解决这个问题要靠访管指令。访管指令本身不是特权指令,其基本功能是让程序拥有“自愿进管”的手段,从而引起访管中断。
处于用户态的用户程序使用访管指令时,系统根据访管指令的操作数执行访管中断外理程序,访管中断处理程序将按系统调用的操作数和参数转到相应的例行子程序。完成服务功能后,退出中断,返回到用户程序断点继续执行。