操作系统内核用户态
操作系统原理 答案

习题二参考答案(P43)2-1什么是核态?什么是用户态?答:核态是指系统程序执行时,机器所处的状态。
用户态是指用户程序执行时,机器所处的状态。
2-2为什么必须区分二态?系统如何区分出二态?答:二态是指核态(系统程序执行时处理机所处的状态)和用户态(用户程序执行时处理机所处的状态)。
操作系统是计算机系统中最重要的系统软件,为了能正确地进行管理和控制,其本身是不能被破坏的。
为此,系统应能建立一个保护环境,因此系统必须区分处理机的工作状态。
系统中有两类程序在运行,它们的任务是不同的,系统程序是管理和控制者,用户程序是被管理和被控制的对象,因此应将它们运行时处理机的工作状态区分出来,即系统必须区分二态。
系2-5按中断的功能来分,中断有哪几种类型?答:按中断的功能来分,中断有如下五种类型: I/O中断 外中断 硬件故障中断 程序性中断 访管中断2-8什么是程序状态字?在微机中它一般由哪两个部分组成?答:程序状态字是指反映程序执行时机器所处的现行状态的代码。
在微机中它一般由指令计数器(PC)和处理机状态寄存器(PS)。
2-9什么是向量中断?什么是中断向量?答:向量中断是指当中断发生时,由中断源自己引导处理机进入中断服务程序的中断过程。
中断向量就是存储该类型中断服务例行程序的入口地址和处理器状态字的存储单元。
2-12什么是操作系统虚拟机?答:操作系统是最基本的系统软件,它是硬件功能的第一层扩充。
配置了操作系统的计算机称为操作系统虚拟机。
扩充了的计算机除了可以使用原来裸机提供的各种基本硬件指令,还可以使用操作系统增加的许多其它指令。
习题三参考答案(P54)3-1用户与操作系统的接口是什么?一个分时系统提供什么接口?一个批处理系统又提供什么接口?答:用户与操作系统的接口是指操作系统提供给用户与计算机打交道的外部机制。
一个分时系统提供的接口有系统功能调用和键盘操作命令。
一个批处理系统提供的接口有系统功能调用和作业控制语言。
操作系统的基本概念、功能、组成及分类

操作系统的基本概念、功能、组成及分类操作系统的概念1、操作系统:负责管理计算机中各钟软硬件资源并控制各类软件运行(他是介于硬件和应用软件系统之间的软件,运行在逻辑上,是人与计算机通信的桥梁)2、进程指进行中的程序,既进程=程序+执行(进程有一定的生命周期,而程序可以长时间的保存)3、线程(提出它的概念主要是为了提高CPU的利用率)(由于CPU处理的速度很快可以理解成多线程是并发的)线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位4、内核态和用户态特权态既内核态:拥有计算机中所有的软硬件资源普通态既用户态:其访问资源的数量和权限均受到限制(由于安全考虑,大多数应用程序时存储在用户态的)操作系统的功能1、控制所有计算机上运行的程序2、管理所有计算机资源a、硬件资源:CPU、内存、外存和输入/输入设备b、软件资源:文件操作系统的组成1、进程管理:系统资源的分配单位(基本单位使进程重点区分一下CPU调度和分派的基本单位线程)2、存储管理:内存分配,存储保护,虚拟存储3、设备管理:管理外设和接口4、文件管理:保存程序和数据等软件信息5、程序接口:提供指令或函数的调用方式,使程序能够调用系统的服务6、用户界面:为用户提供操作环境操作系统的分类1、单用户操作系统:DOS,Windows系列一次只能运行一个用户程序2、批处理操作系统:DOS/VSE(IBM)多个程序或作业同时运行3、分时操作系统(1、经济实惠,可以充分利用计算机的资源2、分时系统的多个用户之间,可以通过文件系统彼此共享数据和共享文件,在各自的终端上协同完成共同的任务):UNIXCPU时间分片4、实时操作系统(要求计算机对数据进行迅速处理,这种有响应时间要求的快速处理过程,叫实时操作系统)5、网络操作系统(将物理上分散的独立的多个计算机系统互联起来,通过网络协议在不同的计算机之间实现信息交换、资源共享等它们这种提供网络通信,资源共享的操作系统称为网络操作系统)典型操作系统1、服务器操作系统:Windows、Unix、LInux、Netware2、PC操作系统:DOS、Windows、MacOS3、实时操作系统:VxWorks4、嵌入式操作系统:Palm OS。
简述x86cpu运行的4个级别

简述x86cpu运行的4个级别x86CPU是一种基于Intel架构的CPU,它是目前世界上最广泛使用的CPU之一。
x86 CPU运行时会经过4个不同的级别,这些级别分别是用户态、内核态、超级用户态和虚拟8086模式。
本文将详细介绍这4个级别的含义和作用。
一、用户态用户态是指CPU在执行用户程序时所处的状态。
在用户态下,CPU 只能访问用户程序所占用的内存空间,不能访问操作系统内核的内存空间。
这是为了保护操作系统内核不受用户程序的干扰。
用户程序可以使用CPU提供的一些指令和功能,但是不能直接访问硬件资源,必须通过操作系统提供的系统调用来实现。
在用户态下,CPU的权限较低,只能执行受限制的指令和操作。
二、内核态内核态是指CPU在执行操作系统内核代码时所处的状态。
在内核态下,CPU可以访问系统的所有资源,可以执行所有指令和操作。
操作系统内核可以直接访问硬件资源,控制系统的各种设备和资源。
在内核态下,CPU的权限最高,可以执行任何指令和操作。
操作系统内核通常使用特权级别0来表示内核态。
三、超级用户态超级用户态是指CPU在执行特权级别大于0但小于3的代码时所处的状态。
在超级用户态下,CPU可以访问一些受保护的资源,如I/O 端口和DMA控制器等。
超级用户态通常用于执行一些需要较高权限的操作,如设备驱动程序的编写和调试等。
超级用户态的权限介于用户态和内核态之间,不同的操作系统有不同的实现方式。
四、虚拟8086模式虚拟8086模式是一种特殊的模式,它允许在保护模式下运行16位的MS-DOS应用程序。
在虚拟8086模式下,CPU会将当前的代码段和数据段设置为16位模式,并且可以访问整个1MB的内存空间。
虚拟8086模式可以通过软件模拟来实现,也可以通过硬件支持来实现。
总结以上就是x86 CPU运行的4个级别,它们分别是用户态、内核态、超级用户态和虚拟8086模式。
每个级别都有不同的权限和作用,它们共同构成了x86 CPU的运行机制。
用户态线程和内核态线程的区别

⽤户态线程和内核态线程的区别⽤户级线程“既然你已经看过线程的基本概念,那我就直接跳过这⼀部分了。
很久很久之前,线程的概念是出现了,但操作系统⼚商可不能直接就去修改操作系统的内核,因为对他们来说,稳定性是最重要的。
贸然把未经验证的东西加⼊内核,出问题了怎么办?所以想要验证线程的可⽤性,得另想办法。
”“我知道我知道,那些研究⼈员就编写了⼀个关于线程的函数库,⽤函数库来实现线程!”⼩⽩得意的说:“这个我刚刚在⽹上看到了。
”“是的,他们把创建线程、终⽌线程等功能放在了这个线程库内,⽤户就可以通过调⽤这些函数来实现所需要的功能。
”⼩明找了张纸,写上了⼏个函数:pthread_creat,pthread_exit ,pthread_join ,pthread_yield ,接着说:“这是⼏个重要的功能,我马上会讲到,你应该能⼤概猜出这些函数的功能吧?”“emmmm,让我想想,pthread_creat 是创建⼀个新线程,pthread_exit 是结束线程,pthread_join 嘛,我猜是准备运⾏,最后⼀个,我就不知道了。
”“不知道也没关系,⼀会你就清楚了。
”⼩明接着讲:“要知道,刚刚我们说的线程库,是位于⽤户空间的,操作系统内核对这个库⼀⽆所知,所以从内核的⾓度看,它还是按正常的⽅式管理。
”⼩⽩问道:“也就是说操作系统眼⾥还是只有进程喽?那我⽤线程库写的多线程进程,只能⼀次在⼀个 CPU 核⼼上运⾏?” (因为操作系统调度的是进程,每次只能调度不同的进程,所以同⼀个进程⾥的线程⽆法并⾏)⼩明点点头,说:“你说的没错,这其实是⽤户级线程的⼀个缺点,这些线程只能占⽤⼀个核,所以做不到并⾏加速,⽽且由于⽤户线程的透明性,操作系统是不能主动切换线程的,换句话讲,如果线程 A 正在运⾏,线程 B 想要运⾏的话,只能等待 A 主动放弃 CPU,也就是主动调⽤ pthread_yield 函数。
”注:对操作系统来说,⽤户级线程具有不可见性,也称透明性。
操作系统重点概念

1.CPU的两种运行模式:内核态(又称核心态、系统态、管态)与用户态(又称目态)。
2.指令是控制计算机执行某种操作的命令。
3.特权指令:是一类具有特殊权限的指令,只用于操作系统或其他系统软件,普通用户不能直接使用4.非特权指令:也称为用户指令或普通指令,是普通用户能够直接使用的指令。
这是指令集中除特权指令外的所有指令。
5.操作系统的用户观点与系统观点:用户观点:为用户提供使用计算机系统的接口与各种资源管理服务(从系统外部看)系统观点:管理与分配计算机系统硬件及软件资源。
因此,操作系统是计算机资源的管理者(从系统内部看6.操作系统:是控制与管理计算机系统内各种硬件与软件资源、有效地组织多道程序运行的系统软件(或程序集合),是用户与计算机之间的接口。
功能:处理机管理、存储器管理、设备管理、文件管理、用户接口7.多道程序设计的基本思想:在内存中同时存放多道程序,在管理程序的控制下交替地执行。
这些作业共享CPU与系统中的其他资源。
8.多道批处理系统优缺点:优点:系统资源利用率高;系统吞吐量大。
缺点:用户作业等待时间长;无交互性,用户一旦提交作业就失去了对其运行的控制能力9.多道:系统在内存中存放多个作业,并且在外存上还保存大量的后备作业。
10.成批:系统按批次调度作业,而在系统运行过程中不允许用户与机器之间发生交互作用。
11.分时:对时间的共享。
在分时系统中,分时主要是指若干并发程序对CPU时间的共享12.Linux系统特点:与UNIX兼容;自由软件,源码公开;性能高,安全性强;便于定制与再开发;互操作性高;全面的多任务与真正的32位操作系统13.进程概念:程序在并发环境中的执行过程进程最根本的属性:是动态性与并发性进程的特征:动态性并发性独立性异步性批处理系统的特征:脱机多道成批处理分时系统的特征:多路性独立性及时性交互性14.进程间的相互关系主要分为如下三种形式:1.互斥——竞争同一资源而发生相互制约2. 同步——协同完成一项任务3. 通信——交换信息,合作完成一项工作15.进程与程序的区别与联系:(1)进程是动态概念,程序是静态概念(2)进程有并发性,程序没有(3)一个程序对应多个进程(4)进程有三个基本状态进程的三种状态及其转换16.进程控制块的作用:每个进程有唯一的进程控制块;操作系统根据PCB对进程实施控制与管理;进程的动态、并发等特征是利用PCB表现出来的;PCB是进程存在的唯一标识17.临界资源:一次仅允许一个进程访问的资源18.临界区:简称CS区进程中访问临界资源的那段程序代码19.原语是为完成某些特定的功能而编制的一段系统程序。
计算机等考四级操作系统知识点

操作系统单选题1.操作系统:从计算机系统发展角度来看,操作系统的主要作用是提供虚拟机和扩展机。
从软件设计和开发角度来看,操作系统的主要作用是提供软件开发基础平台。
从计算机应用角度来看,操作系统的主要作用是提供人机交互接口。
从计算机安全保护角度来看,操作系统的主要作用是提供第一道安全防线2.操作系统作为系统软件,位于软件系统的硬件之上,支撑软件之下层面。
组成操作系统的主要部分是进程线程管理,内存管理,设备管理和文件管理。
在计算机配置操作系统的主要目的是提高计算机系统资源的利用率。
当操作系统位于核心态时既可以运行特权命令也可以运行任何非特权命令。
内核态和用户态是用于操作系统运行安全而设置的一种状态标记,其含义是指:在运行时所处的状态。
算术运算指令可以在用户态下执行。
在计算机系统当中,通常为匹配不同速度的外设,采用了缓冲技术,高速缓存(错)。
3.并发性:操作系统"并发性"是指进程在宏观上是同时运行,而在微观上是交替运行。
编译高级语言编写的程序不是操作系统具有的功能。
操作系统最基本的特征是并发性。
采用多道程序设计技术能够有效地提高系统的并发性。
4.操作系统接口:当用户在终端窗口通过输入命令来控制计算机运行时,使用的是操作系统的命令行接口。
操作系统作为系统软件,为用户提供了高效使用计算机的接口。
操作系统提供给用户的接口是命令输入和系统调用。
5.微内核结构:微内核结构是构造操作系统的方法,微内核结构表示的是客户机/服务器结构。
关于操作系统的结构,清晰的单向依赖和单向调动性不是微内核结构的特点。
6.内核:操作系统需要处理器从内核态转为用户态时,采用的是修改程序状态字。
既可以在内核态下运行又可以在用户态下运行的指令是置移位方向标志。
用户应用程序不属于操作系统内核程序。
在操作系统中,只能在内核态下运行的指令是关中断指令。
7.系统调用:系统调用时调用程序位于用户态,被调用程序位于核心态。
若要在屏幕上画一个红色的圈,需要使用系统调用。
操作系统中的用户态与内核态通信机制

操作系统中的用户态与内核态通信机制操作系统是计算机系统中的核心组件,负责管理计算机硬件资源以及提供各种服务和功能。
在操作系统中,存在着用户态和内核态的不同运行状态,用户态与内核态之间的通信机制是保证系统正常运行的关键之一。
本文将深入探讨操作系统中的用户态与内核态通信机制。
一、用户态与内核态概述在操作系统中,进程可以运行在用户态或者内核态。
用户态是指进程运行在一个受限环境中,只能访问受限的资源,例如用户自身的存储空间和部分设备。
而内核态是指进程处于操作系统的特权级别,可以访问系统的所有资源和功能。
用户态和内核态的切换是通过操作系统的内核来实现的。
二、用户态与内核态通信机制用户态与内核态之间的通信机制是操作系统中至关重要的一部分。
下面将介绍几种常见的用户态与内核态通信机制。
1. 系统调用系统调用是用户态程序访问内核态的主要方式。
通过系统调用,用户态程序可以请求内核提供特定的功能和服务。
用户态程序通过将系统调用的参数传递给指定的系统调用函数,并通过软中断或者异常的方式切换到内核态执行相应的内核函数。
执行完内核函数后,再切换回用户态继续执行用户态程序的指令。
2. 中断中断是计算机系统中一种重要的事件响应机制,操作系统通过处理中断来响应外部设备的请求和系统状态的变化。
中断可以触发用户态程序从用户态切换到内核态。
当发生中断请求时,CPU会中断当前正在执行的程序,然后跳转到内核态执行相应的中断处理程序。
中断处理程序完成后,再切换回用户态继续执行被中断的程序。
3. 异常异常与中断类似,都是由于某种事件的发生而导致CPU从当前任务转移到内核态的一种机制。
与中断不同的是,异常是由当前任务的执行引起的,可以看作是一种程序执行中的错误或者异常情况。
常见的异常包括除零错误、页错误、非法指令等。
当异常发生时,CPU会暂停当前的任务,跳转到内核态执行相应的异常处理程序。
异常处理程序完成后,再切换回用户态继续执行被中断的程序。
从用户态转换到核心态的途径

从用户态转换到核心态的途径从用户态转换到核心态,是指从用户态进程切换到核心态执行特权指令的过程。
在操作系统中,核心态是操作系统内核执行的特权级别,可以执行所有的指令和访问所有的资源,而用户态是普通应用程序执行的权限级别,受到操作系统的保护限制,不能直接访问底层硬件资源。
用户态和核心态的切换是操作系统中非常重要的机制,它可以保障操作系统的安全性和稳定性。
下面将介绍几种常见的从用户态转换到核心态的途径。
1. 系统调用(System Call):系统调用是用户态进程通过软中断让操作系统内核执行特权指令的一种方式。
用户态进程通过调用特定的系统调用接口,将请求传递给操作系统内核,内核在核心态执行相应的操作,然后将结果返回给用户态进程。
系统调用是用户态进程访问操作系统内核的主要方式,例如文件操作、网络通信等。
2. 异常(Exception):异常是由当前执行的指令引发的事件,需要操作系统内核处理的情况。
例如,访问非法内存地址、除零错误等。
当发生异常时,操作系统会将处理器从用户态切换到核心态,并执行相应的异常处理程序。
异常处理程序可以根据具体的异常类型进行处理,例如修复错误、终止进程等。
3. 中断(Interrupt):中断是由外部设备触发的事件,需要操作系统内核处理的情况。
例如,硬件设备完成数据传输、定时器中断等。
当发生中断时,操作系统会将处理器从用户态切换到核心态,并执行相应的中断处理程序。
中断处理程序可以根据不同的中断类型进行相应的处理,例如读取数据、发送数据等。
4. 缺页异常(Page Fault Exception):缺页异常是用户态进程访问虚拟内存中未加载到物理内存的页面时触发的异常。
当发生缺页异常时,操作系统会将处理器从用户态切换到核心态,并根据页面置换算法将相应的页面加载到物理内存中,然后将控制权返回给用户态进程继续执行。
5. 系统陷阱(System Trap):系统陷阱是用户态进程通过软中断主动请求操作系统内核执行特权指令的一种方式。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
内核态线程
1:1的内核线程模型: 现代OS内核大多都提供了对线程的直接支持;在"1:1" 内核线程模型中,应用程序创建的每一个用户线程都 由一个内核线程直接管理.OS内核把每一个内核线程 都调度到系统CPU上;这样的话,应用程序创建的每一 个用户线程都有机会获得系统CPU的时间片而不会 被其它线程的阻塞式操作所阻塞;因此,在"1:1"内核线 程模型中,所有的线程都工作在"系统竞争范围".HPUX11、Linux和Windows NT/2000平台都提供了 1:1内核线程模型
用户态线程
用户态线程
在N:1的用户线程模型中,内核并不干涉线程的任何生 命活动,也不干涉同一个进程中的环境切换.因此,线程 的创建、删除和环境切换都很高效 但是这个模型有两个问题: A:无论主机有多少个CPU,一个进程只会被调度到一 个CPU上.这个进程中的所有线程都会竞争那一个 CPU,内核进行进程调度时所分配的任何CPU时间片 都被这个进程中的所有线程所共享 B:如果某一个线程执行了一个"阻塞式"操作,那么,这 个进程中的所有线程都会被阻塞,直到那个阻塞式操 作结束
内核态线程
Байду номын сангаас
内核态线程
N:1用户线程模型中的两个问题在1:1内核线程模型 中得到解决: A:如果有多个CPU可用,则多线程应用程序可以利用 这些CPU; B:如果内核在系统函数中阻塞了一个线程,则其它线 程仍然能继续运行,而不会受到影响; 但是,OS内核涉及线程的创建和调度,所以,较之N:1 模型,在使用1:1模型时,线程的生命周期操作更昂贵;
混合方式线程
混合方式线程
但是N:M模型也有自己的问题;多个"用户空间线程"中,只 要有一个线程调用了阻塞式系统函数,其它线程就会都被 阻塞.如果OS内核阻塞了一个LWP,则被线程库调度到这 个LWP上的所有用户线程也都会被阻塞,但是被调度到其 它LWP上的用户线程仍然能继续运行,而不受影响;Solaris 系统通过二分法来解决这个问题;这种二分法基于"调度者 激活"的规则: A:OS线程库维护着一个LWP池,用来运行所有"进程范围" 内的用户线程.在需要的时候,它可以把这些用户线程重新 调度到池中的LWP上.池的大小可以通过pthread库中的 pthread_setconcurrency()函数来调整;也就是调整线程的 并发度; B:如果OS内核发现进程中所有内核线程都被阻塞了,则会 向受影响的进程发送SIGWAITING信号;线程库捕获到这 个信号之后,会启动一个新的LWP,然后它把一个"进程范 围"内的线程重新调度到这个新启动的LWP上,使得应用程 序可以继续运行;
混合方式线程
有一些操作系统,比如Solaris,它提供了N:1模型和1:1 模型的混合模型,即"N:M"混合线程模型.这个模型支 持用户线程模型和内核线程模型的混合形式;当应用 程序创建线程的时候,它可以指明这个线程应该工作 在哪一个竞争范围(在Solaris中,默认选择的是"进程 竞争范围").OS线程库创建一个用户空间(user-scope) 线程,但是只在需要的时候,或者是在应用程序有明确 请求"系统竞争空间"的时候,它才会创建一个内核线 程;就像在1:1模型中的那样,OS内核把内核线程调度 到CPU上,但是也像在N:1模型中的那样,OS线程库把 "用户空间线程"调度到一个"轻量级进程(LWP)"上,然 后每一个LWP都映射到一个内核线程上;
不同OS中线程的实现分成内核态线程、 用户态线程、混合方式线程。简单分析 下几种方法的优缺点。
用户态线程
N:1的用户线程模型: 早期的"线程实现"是建立在原始的OS"进程控制"机制 之上的,并由用户空间中的程序库来管理.因此,操作系统 并不知道线程的信息."调度进程和程序库"的内核在同 一个进程中管理N个线程.因此,这种线程模型被称为是 "N:1"的用户线程模型,这些线程也被称为是用户空间线 程或用户线程;在N:1的用户线程模型中,所有的线程都 工作在"进程竞争范围";比如:HP-UX10.20和SunOS4.x 这两个平台就提供了N:1用户线程模型;