1.试对程序、进程、线程的概念和功能进行比较。
(1)进程的概念:
关于进程,有很多定义,例如:
1)进程是程序的一次执行;
2)进程是可以和别的进程并发执行的计算;
3)进程就是一个程序在给定活动空间和初始条件下,在一个处理机上的执行进程;
4)进程是程序在一个数据集合上的运行过程,它是系统进行资源分配和调度的一个独立单位;
5)进程是动态的,有生命周期的活动。内核可以创建一个进程,最终将由内核终止该进程使其消亡;
总的来说,进程是在自身的虚拟地址空间运行的一个单独的程序。
(2)进程与程序:
进程与程序是两个完全不同的概念,但又有密切的联系。它们之间的主要区别有如下几个方面:
1)程序是静态的概念,而进程则是程序的执行过程。它是动态的概念。
2)进程是一个独立运行的单位,能与其他进程并发运行;而程序是不能作为一个独立运行的单位而并发执行的。
3)程序和进程无一一对应的关系。
4)各个进程在并发执行过程中会产生相互制约关系,而程序本身是静态的,不存在这种异步特征。
(3)线程:
线程是进程中执行运算的最小单位,亦即执行处理机调度的基本单位。
线程与进程相比,具有以下一些特征:
1)进程是资源分配的基本单位。同一进程的所有线程共享该进程的所有资源;
2)线程是分配处理机的基本单位,它与资源分配无关;
3)一个线程只能属于一个进程,而一个进程可以有多个线程,且至少有一个进程;
4)线程在执行过程中,需要协作同步。
引入线程的好处有以下几点。
1)易于调度;
2)提高了系统的效率;
3)创建一个线程比创建一个进程花费的开销少,创建速度快;
4)有利于发挥多处理机的功能,提高进程的并行性。
2.Windows Server 2008 任务管理有哪些重要功能?
(1)为排错获取处理机和内存的使用情况信息;
(2)获取运行中的应用程序的信息;
(3)进程的排错和监控;
(4)服务监控和拍错;
(5)获取网络使用的信息;
(6)获取用户和远程用户会话信息。
3.Linux进程调度的方法有哪些?它们的功能有何不同?
(1)at命令:
用户使用at命令在指定时刻执行指定的命令序列。也就是说,该命令至少需要指定一个命令、一个执行时间才能正常运行。at命令可以只指定时间,也可以时间和日期一起指定。需要注意的是,指定时间有个系统判别问题。
(2)batch用低优先级运行作业,该命令几乎和at命令的功能完全相同,唯一的区别在于,at命令是在指定时间,很精确的时刻指定命令;而batch是在系统负载较低,资源比较空闲时执行命令。改命令适合于执行占用资源较多的命令。
(3)cron命令:
at和batch命令都会在一定时间内完成一定的任务,但是它们都只能执行一次。当指定了运行命令后,系统在指定时间完成任务,一切就结束了。但是在很多情况下需要不断重复一些命令。
cron是不应该手工启动的。cron命令在系统启动时就由一个Shell脚本自动启动,进入后台(所以不需要使用&符号)。一般的用户没有运行该命令的权限,虽然超级管理员可以手工启动cron,不过还是建议将其放到Shell脚本中由系统自行启动
cron命令的执行不需要用户干涉,用户可以创建自己的crontab文件。
4.在Linux中,可通过哪些命令查看进程?
(1)who命令;
(2)w命令;
(3)ps命令;
(4)top命令。