Linux系统--Linux进程与作业管理(1)

先了解一些基本概念:内核的功能,程序的组成,进程,进程的类型和运行状态,进程的分类,Linux中的第一个进程initLinux内核存储进程信息的格式,进程的优先级,进程间的通信。

1.Linux内核的功能和程序的组成:

Linux内核是一种开源电脑操作系统。是用来与硬件打交道并为用户程序提供一个有限服务集的软件。Linux内核支持模块化,支持模块的动态加载和卸载,可以把模块驱动编辑到内核中,也可以不编辑到内核,直接调用需要的模块。Linux内核的主要功能由:

进程管理,内存管理,网络管理,驱动程序,文件系统和安全功能

    Linux系统--Linux进程与作业管理(1)_程进程的类型和运行状态

系统调用接口(SCISystem Call Interface):是Linux内核与上层应用程序进行交互通信的唯一接口。通过这个接口,用户可以访问内核空间。SCI是一个非常有用的函数调用多路复用和多路分解服务。

二进制应用程序是由二进制文件,库文件,配置文件,帮助文件。

2.进程、进程的类型和运行状态,进程的分类:

进程(process)是计算机中程序关于某些数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位。也可以说运行中的程序的一个副本;存在生命周期。

Linux进程类型有:守护进程和前台进程

守护进程:在系统引导过程中启动的进程,跟终端无关的进程。

前台进程:跟终端相关,通过终端启动的进程

可以把在前台启动的进程送往后台,以守护模式运行。

进程的运行状态:

运行态:Running

就绪态:ready

睡眠态:

可中断:interruptable:当等待资源满足时,或其他进程通过信号或时钟中断唤醒

不可中断:uninterruptable:只能通过等待资源满足时才被唤醒,而不能被其它进程唤醒

停止态:暂停于内存中,但不会被调度,除非手动启动之。

收到一下几种信号,进入暂停状态:

SIGSTOP ——>停止进程执行

SIGTSTP----->从终端发来信号停止进程

SIGTTIN----->来自键盘中断

SIGTTOU---->后台进程请求输出

僵死态:zombie进程已结束且释放大部分资源,但尚未释放其PCB

进程的分类:

计算密集型:(CPU-bound)在多重程序中,大部分时间用来做计算、逻辑判断等CPU动作

I/O密集型:(I/O-bound)在大多数情况下处理I/O操作

3.Linux中的第一个进程init

Linux启动时会启动系统的第一个用户态进程init进程,其进程ID1

在系统启动阶段,操作系统内核部分初始化的结尾,将运行init这个第一个用户态的程序,它是所有用户进程的父进程,它将依据/etc/inittab配置的文件来对系统进行用户的初始化。

用户启用init命令并不是真正运行run level 切换的工作,知识通过pipe把命令打包成request,然后传递给作为daemon进程运行的init

系统启动之后,init作为一个daemon进程运行,一是监控/etc/inittab配置文件中的相关命令的执行,二是通过管道接收请求来切换run level并处理

4.Linux内核存储进程信息的格式

linux中每个进程都有task_struct数据结构来定义。task_struct就是我们常说的PCBProcess Control Block )程序控制块。当我们调用fork()函数生成子进程时,系统会为我们产生一个task_struct结构,然后从父进程那里继承一些数据,并把新的进程插入到进程树中,以待进行进程管理。task_struct记录了进程的一些状态信息如,调度信息,进程的通信状况,进程的优先级,父子进程的一些指针,内存信息,时间片等

5.进程的优先级:

进程CPU资源分配就是指进程的优先权(priority)。优先权越高的进程有优先执行的权利。修改进程的优先权可以大大改善系统整体性能。

优先级用数字0-139表示,分为:

实时优先级:1-99

静态优先级:100-139

数字越小优先级越高。为了防止某各进程的优先级被无限的调小,就出现了nice值(-20---19),其表示进程可执行的优先级的修正数值。进程的优先级大小:静态优先级+nice值,值越小越被先执行。

6.进程间通信:

进程间通信是在不同进程之间传播或交换信息。进程的用户空间是相互独立,一般而言是不能相互访问的,唯一的例外是共享内存区。系统空间确是公共场所,所以内核显然可以提供这样的条件。

进程间同信(IPCInterProcess communication)的方法有:管道,消息队列,共享内存,信号,套接字等。