J-Linux&Shell-W11
进程及其管理(上)
- 一.判断题
- 终止进程的命令可以用kill。(√ )
- ps命令列出当前的进程,以及它们的树状结构。(× )
- linux系统上所有运行的东西都可以称之为一个线程。( ×)
- nice命令是用来给程序点赞的。(× )
- 二.单项选择题
- 下列不属于进程基本状态的是( C)
A.运行态 B.就绪态 C.终止态 D.阻塞态
- 可以动态查询当前系统进程情况的命令是( B)
A.ps B.top C. nice D. pstree
- TOP命令使用过程中切换显示进程和CPU状态信息的指令是( B)
A.T B.t C.M D.m
- 三.不定项选择题
- 下列属于进程类命令的是(ABCD )
A.pstree B.kill C.ps D.top
- 下列可以起到强制终止进程作用的命令与选项的组合是(AB )
A.kill -9 B.kill -KILL C.kill -l D.KILL -9
- 四.填空题
- 输出所有进程的信息,但是输出信息的宽度会根据屏幕宽度截取的命令和选项的组合是_ps -ef__。
- 五.问答题
- 请简述进程、线程以及协程之间的区别与联系。
进程:一个运行的程序(代码)就是一个进程,没有运行的代码叫做程序,进程是系统资源分配的最小单位,进程拥有自己独立的内容空间,所以进程间数据不共享,开销大。
线程:调度执行的自小单位,也叫执行路径,不能独立存在,依赖进程存在一个进程至少有一个有一个线程,叫做主线程,而多个线程共享内容(数据共享,共享全局变量),从而极大的提高了程序的运行效率。
协程:是一种用户态的轻量级线程,协成的调度完全是由用户控制,协成拥有自己的寄存器上下文和栈,协成调度切换时,将寄存器上下文和栈保存到其他地方,在切换回来的时候,恢复先前保存的积存器上下文和栈,直接操作栈则基本没有内核切换的开销,可以不加锁的访问全局变量,所以上下文的切换非常快。
线程是非独立的,用一个进程里线程是数据共享的当各个线程访问数据资源时会出现竞争状态即:数据几乎同步会被多个线程站用,造成数据混乱,即,所谓的线程不安全。
进程和线程的切换是由系统决定,而协成是由我们程序员自己决定,而模块gevent 下切换是遇到了耗时操作才会切换。
三者的关系:进程里有线程,线程里有协程。