目录
进程与线程
内核功能:进程管理、内存管理、文件系统、网络功能、驱动程序、安全功能等
对于所有的操作系统,都有基本的功能
Process:运行中的程序的一个副本,是被载入内存的一个指令集合,是资源分配的单位
进程ID (Process ID, PID) 号码是被用来标记各个进程
UID、GID、和SELinux语境决定对文件系统的存取和访问权限
通常从执行进程的用户来继承
存在生命周期
进程所占用的内存空间由操作系统决定
进程与线程的区别和联系
概念
进程第一个进程是initd
进程(Process)
是指计算机中E运行的程序。进程曾经是分时系统的基本运作单位。
· 进程是正在执行的程序;
· 进程是可以分配处理器并由处理执行的实体;
可以运行多个(专业名称叫多实例)
进程需要操作系统分配空间
进程的创建
第一个进程是init
进程都是由父进程创建
线程(Thread)
是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。
一个进程至少有一个执行线程;
线程也被称为轻量级进程;
线程是进程内部的一部分;
进程是资源竞争的基本单位;
线程是程序执行的最小单位;
资源占有角度
·操作系统会为一个进程分配一堆资源,所有的进程之间是独立的,是互不影响的。
·线程会共享进程的虚拟地址空间,只拥有一小部分资源,比如自己的线程ID,私有栈空间,自己的上下文数据等。
线程是共享资源,所以一个线程的异常退出会影响整个进程异常退出,并且要注意线程间的同步与互斥问题。
调度与切换
· 进程会携带很多资源,所以创建和撤销进程时,代价较大
线程花费代价较小
· 进程会携带很多资源,所以进程之间的切换或调度时,操作系统要做的工作比较多
线程调度时,工作较少
进程与线程的联系
进程和线程都是操作系统所运行的程序运行的基本单元。
线程和进程的区别是什么?
类似”进程是资源分配的最小单位,线程是CPU调度的最小单位“这样的回答感觉太抽象,都不太容易让人理解。
做个简单的比喻:
线程在进程下行进
一个进程可以包含多个线程
不同进程间数据很难共享
同一进程下不同线程间数据很易共享
进程要比线程消耗更多的计算机资源
进程间不会相互影响,一个线程挂掉将导致整个进程挂掉
进程可以拓展到多机,进程最多适合多核
进程使用的内存地址可以上锁,即一个线程使用某些共享内存时,
其他线程必须等它结束,才能使用这一块内存。
查看进程信息ps
ps命令
●查看静态的进程统计信息
[root@localhost ~]# ps -elf
查看进程信息top
top命令
查看动态的进程排名信息
[root@localhost ~]# top
查看进程信息pgrep
pgrep命令
●根据特定条件查询进程PID信息
查看进程信息pstree
■pstree命令
●以树形结构列出进程信息
vim /proc/ 进程的PID号文件夹/stat
进程的启动方式
■手工启动
●前台启动:用户输入命令,直接执行程序
●后台启动:在命令行尾加入“&”符号
■调度启动
●使用at命令,设置一次性计划任务
●使用crontab命令,设置周期性计划任务
进程的前后台调度
■Ctrl+Z组合键
将当前进程挂起,即调入后台并停止执行
■jobs命令
查看处于后台的任务列表.
■fg命令
将后台进程恢复到前台运行,可指定任务序号
终止进程的运行
■Ctrl+C组合键
●中断正在执行的命令
■kill、killall命令
●kil用于终止指定PID号的进程
●kilall用于终止指定名称的所有进程
●-9选项用于强制终止
■pkill命令
●根据特定条件终止相应的进程
●常用命令选项
-∪:根据进程所属的用户名终止相应进程
-t:根据进程所在的终端终止相应进程
计划任务管理at
at命令
●一次性计划任务
at [HH:MM] [yyyy-mm-dd]
计划任务管理crontab
■crontab命令
按照预先设置的时间周期(分钟、 小时、...... 重复执行用户指定的命令操作
●属于周期性计划任务
●主要设置文件
◆全局配置文件,位于文件: /etc/crontab
◆系统默认的设置,位于目录: /etc/cron.*/
◆用户定义的设置,位于文件: /var/spool/cron/用户名
■管理crontab计划任务
编辑计划任务
crontab -e [-u用户名]
●查看计划任务
crontab 1 [-u用户名]
●删除计划任务
Crontab -r [-u用户名]
crontab任务配置的格式
分 时 日 月 周 命令
■时间数值的特殊表示方法
●*表示该范围内的任意时间
●,表示间隔的多个不连续时间点
●-表示一个连续的时间范围
●/指定间隔的时间频率
■应用示例
●0 17 * * 1-5 周一到周五每天17:00
●30 8 * *1,3,5 每周一、三、五的8点30分
●0 8-18/2 * * * 8点到1 8点之间每2小时
●0 * * /3 * * 每3天
总结
主要学习进程和计划任务管理,需要掌握进程与线程的区别与计划任务管理