原语(原子语言,不可分割,不可中断)

是操作系统或计算机网络用语范畴。是由若干条指令组成的,用于完成一定功能的一个过程。primitive or atomic action 是由若干个机器指令构成的完成某种特定功能的一段程序,具有不可分割性。即原语的执行必须是连续的,在执行过程中不允许被中断。

分类

计算机网络中也有“原语”一词,它与操作系统的“原语”概念不同。服务原语是指协议中的下层协议通过接口为上层协议提供某种服务而发送的原语操作。

原语分为四类:

请求(Req)型原语,用于高层向低层请求某种业务;
证实(Cfm)型原语,用于提供业务的层证实某个动作已经完成;
指示(Ind)型原语,用于提供业务的层向高层报告一个与特定业务相关的动作;
响应(Res)型原语,用于应答,表示来自高层的指示原语已收到。

————————————————
版权声明:本文为CSDN博主「顺其自然~」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/fuhanghang/article/details/83581477

线程的实现可以分两类:用户级线程,内核级线程和混合式线程。

用户线程
用户级线程是指不需要内核支持而在用户程序中实现的线程,它的内核的切换是由用户态程序自己控制内核的切换,不需要内核的干涉。但是它不能像内核级线程一样更好的运用多核CPU。

优点
(1) 线程的调度不需要内核直接参与,控制简单。

(2) 可以在不支持线程的操作系统中实现。

(3) 同一进程中只能同时有一个线程在运行,如果有一个线程使用了系统调用而阻塞,那么整个进程都会被挂起,可以节约更多的系统资源。

缺点
(1) 一个用户级线程的阻塞将会引起整个进程的阻塞。

(2) 用户级线程不能利用系统的多重处理,仅有一个用户级线程可以被执行。

内核级线程
切换由内核控制,当线程进行切换的时候,由用户态转化为内核态。切换完毕要从内核态返回用户态。可以很好的运用多核CPU,就像Windows电脑的四核八线程,双核四线程一样。

优点
(1)当有多个处理机时,一个进程的多个线程可以同时执行。

(2) 由于内核级线程只有很小的数据结构和堆栈,切换速度快,当然它本身也可以用多线程技术实现,提高系统的运行速率。

缺点
(1) 线程在用户态的运行,而线程的调度和管理在内核实现,在控制权从一个线程传送到另一个线程需要用户态到内核态再到用户态的模式切换,比较占用系统资源。(就是必须要受到内核的监控)

关联性
(1) 它们之间的差别在于性能。

(2) 内核支持线程是OS内核可感知的,而用户级线程是OS内核不可感知的。

(3) 用户级线程的创建、撤消和调度不需要OS内核的支持。

(4) 用户级线程执行系统调用指令时将导致其所属进程被中断,而内核支持线程执行系统调用指令时,只导致该线程被中断。

(5) 在只有用户级线程的系统内,CPU调度还是以进程为单位,处于运行状态的进程中的多个线程,由用户程序控制线程的轮换运行;在有内核支持线程的系统内,CPU调度则以线程为单位,由OS的线程调度程序负责线程的调度。

(6) 用户级线程的程序实体是运行在用户态下的程序,而内核支持线程的程序实体则是可以运行在任何状态下的程序。

某操作系统支持内核级线程,且处理器采用时间片轮转调度算法。该系统现有进程A和进程B,且进程A拥有2个线程、进程B拥有100个线程,那么进程A执行时间一般应为进程B执行时间的( D )。

A.50倍
B.100倍
C.1倍
D.1/50

某系统不支持内核级线程但支持用户级线程,且处理器采用时间片轮转调度算法。该系统现有进程A和进程B,且进程A拥有1个线程、进程B拥有100个线程,那么进程A执行时间一般应为进程B执行时间的( B )。

A.50倍
B.1倍
C.100倍
D.1/100

要理解上面两道题,先简单看一下这几个重要概念(更加细节不赘述,其他博客更清楚):

用户级线程:用户级线程,说白了就是应用程序的所支持的线程,一切有关线程的工作都是由应用程序完成,内核意识不到线程的存在!用户级线程对于操作系统是不可见的,因此无法调度到内核。每个进程的线程只在用户空间可见。
内核级线程:线程的所有管理工作都是由内核来控制的,线程对内核可见,一个用户线程被映射到一个内核线程。
时间轮转调度算法(暴力理解):5个和尚(进程)排队打饭,5个人的饭量为2,3,1,4,5(进程执行完所需时间),打饭的勺每次能打3饭量(时间片),规定每个和尚只给一勺,可多不可少,如果够了就走(进程执行完毕,结束),不够就排到队尾等着打下一勺。这里每个勺能打3饭量就是规定的时间片,进程来回排队就是时间轮转度算法。
题目解析:在上面两题中,A进程有2个线程,B进程有100个线程
对于支持内核级进程的情况:内核能看到进程中的线程,时间片又都是一样的,所以2/100=1/50,选D;
对于支持用户级线程的情况:内核只能看到进程,所以就是 A进程 VS B进程,1V1,所以选B
————————————————
版权声明:本文为CSDN博主「fanjun1997」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_45913922/article/details/116073235

进程控制块,Process Control Block, PCB。

操作系统管理控制进程运行的信息集合,操作系统用 PCB 来描述进程的基本情况以及运行变化的过程,PCB 是进程存在的唯一标志。
进程的创建:为进程创建 PCB。
进程的终止:回收其 PCB。
进程的组织管理:通过对 PCB 的组织管理实现。