调度
操作系统管理了系统的有限资源, 当有多个进程要使用这些资源时,因为资源的有限性, 必须按照一定的原则选择进程来占用资源. 这就是调度. 目的是控制资源使用者的数量,选取资源使用者许可占用资源或占用资源.
调度算法
根据系统的资源资源分配策略所规定的资源分配算法. 对于不同的系统和系统目标, 通常采用不同的调度算法.
目前存在的多种调度算法中, 有的算法适用于作业调度, 有的算法适用于进程调度,. 也有的算法既适用于作业调度, 也适用于进程调度.
linux内核的三种调度方法:
- SCHED_OTHER 分时调度策略
- SCHED_FIFO 实时调度策略, 先到先服务
- SCHED_RR 实时调度策略, 时间片轮转
模拟实现僵尸进程
创建一个维持30秒的僵死进程
编译并在另一个终端下启动监控
模拟实现孤儿进程
创建一个孤儿进程
sentenv函数: 改变或增加环境变量, 此函数并不能添加或修改shell进程的环境变量. 如果在某次运行程序是执行了sentenv函数, 进程终止后再次运行该程序, 上次的设置是无效的, 上次设置的环境变量不能读到.
sentenv命令: 查询或显示环境变量
语法: sentenv[变量名称][变量值]
export命令: 设置或显示环境变量
语法: expor[-fnp][变量名称]=[变量设置值]
-f 代表[变量名称]中为函数名称
-n 删除指定的变量
-p 列出所有的shell赋予程序的环境变量