1. 进程五状态的转换图
2. 了解上下文切换,了解了解两个进程切换的过程,了解进程怎么使用PCB保存和恢复现场的?
3. 了解系统调用、中断,系统调用和中断会发生进程切换吗?
4. 父进程子进程共享全部还是部分资源?
5. 僵尸进程有什么损害?
6. 什么是孤儿进程?什么是守护进程?
7. 一个进程可以创建多少线程。
8. 再理解系统调用,系统调用与普通调用的区别?系统调用会产生中断吗?什么是中断?
------------------------------------------------------------------------------------------------------------------------------------
1. 中断
1. 中断是能够打断CPU指令序列的事件,它是在CPU内外,由硬件产生的电信号
2. 百度百科:中断是指计算机运行过程中,出现某些意外情况需主机干预时,机器能自动停止正在运行的程序并转入处理新情况的程序,处理完毕后又返回原被暂停的程序继续运行。
3. 软中断:(百度百科):软件中断。是一条CPU指令,用以自陷一个中断。由于软中断指令通常要运行一个切换CPU至内核态(Kernel Mode/Ring 0)的子例程,它常被用作实现系统调用(System call)。
4. 内中断:内中断则是指由于CPU内部事件所引起的中断,如程序出错(非法指令、地址越界)等。内中断(trap)也被译为“陷入”或“陷阱”。
5. 外中断是指由于外部设备事件所引起的中断,如通常的磁盘中断、打印机中断等;
2. 中断的功能
1. 提高计算机效率,计算机中处理的工作速度远高于外围设备的工作速度,通过中断可以协调他们的工作。当外围设备需要与处理机交换信息时,由外围设备向处理机发出中断请求,处理机及时响应并作相应处理。不交换信息时,处理机和外围设备处于各自独立的并行工作状态。
2. 维持系统可靠正常工作,现代计算机中,程序员不能直接干预和操纵机器,必须通过中断系统向操作系统发出请求,由操作系统来实现人为干预。例如:主存储器中往往有多道程序和各自的存储空间。在程序运行过程中,如出现越界访问,有可能引起程序混乱或相互破坏信息。为避免这类事件的发生,由存储管理部件进行监测,一旦发生越界访问,向处理机发出中断请求,处理机立即采取保护措施。
3. 满足实时性要求,在实时系统中,各种监测和控制装置随机地向处理机发出中断请求,处理机随时响应并进行处理
4. 提供故障现场处理手段。处理机中设有各种故障检测和错误诊断的部件,一旦发现故障或错误,立即发出中断请求,进行故障现场记录和隔离,为进一步处理提供必要的依据。
2. 软中断与系统调用
系统调用:这是借助于中断和陷入机制来完成的,在该机制中包括中断和陷入硬件机构及中断与陷入处理程序两部分。
陷入内核:可以理解为通过软中断进入内核态。内中断(trap)也被译为“陷入”或“陷阱”。
3. 僵尸进程
1. 百度百科:僵尸进程是当子进程比父进程先结束,而父进程又没有回收子进程,释放子进程占用的资源,此时子进程将成为一个僵尸进程。
2. 在UNIX 系统中,一个进程结束了,但是他的父进程没有等待(调用wait / waitpid)它, 那么它将变成一个僵尸进程
3. 如何父进程先结束:因为每个进程结束的时候,系统都会扫描当前系统中所运行的所有进程, 看有没有哪个进程是刚刚结束的这个进程的子进程,如果是的话,就由Init 来接管他,成为他的父进程。
4. 因为UNⅨ提供了一种机制可以保证只要父进程想知道子进程结束时的状态信息, 就可以得到。
5. 危害:这种机制就是: 在每个进程退出的时候,内核释放该进程所有的资源,包括打开的文件,占用的内存等。但是仍然为其保留一定的信息(包括进程号the process ID,退出状态the termination status of the process,运行时间the amount of CPU time taken by the process等)。直到父进程通过wait / waitpid来取时才释放. 但这样就导致了问题,如果进程不调用wait / waitpid的话,那么保留的那段信息就不会释放,其进程号就会一直被占用,但是系统所能使用的进程号是有限的,如果大量的产生僵尸进程,将因为没有可用的进程号而导致系统不能产生新的进程. 此即为僵尸进程的危害,应当避免。
4. 孤儿进程、守护进程
1. 孤儿进程:指的是在其父进程执行完成或被终止后仍继续运行的一类进程。这些孤儿进程将被init进程(进程号为1)所收养,并由init进程对它们完成状态收集工作。
2. 守护进程(百度百科):守护进程(daemon)是一类在后台运行的特殊进程,用于执行特定的系统任务。很多守护进程在系统引导的时候启动,并且一直运行直到系统关闭。另一些只在需要的时候才启动,完成任务后就自动结束。
3. 了解守护进程怎么创建的。