Views: 0
程序:是一组静态指令的集合。
进程:是一个程序动态的执行过程, 是资源申请、 调度和独立运行单位。
当程序加载到内存中运行时, 内存中的那个数据就称为进程。
服务:长期运行在内存中的进程, 且可以提供一些系统或网络功能
.在麒麟操作系统中 , 程序通过用户的执行来触发 , 触发任何一个事件时 , 系统都会将它定义为一个进程。 为了能够管理这个进程 , 操作系统会给予这个进程一个PIO, 同时根据触发这个进程的用户和相关属性关系 , 给予这个PID一组有效的权限设置。
进程的类型
根据进程的特点把进程分为下面三类:
交互进程:
由 shell启动的进程, 它既可以在前台运行, 也可以在后台运行。 交互进程在执行过程中 , 要求与用户进行交互操作。 简单来说就是用户需要给出某些参数或者信息, 进程才能继续执行。
批处理进程:
与windows原来的批处理很类似,是一个进程序列。该进程负责按照顺序启动其它进程。
守护进程:
是执行特定功能或者执行系统相关任务的后台进程。 守护进程只是一 个特殊的进程, 不是内核的组成部分。许多守护进程在系统启动时启动 直到系统关闭时才停止运行。 而某些守护进程只是在需要时才会启动, 比如FTP或者Apache服务等, 可以在需要的时候才启动该服务。
进程的关系
守护进程
(补充)所有守护进程都可以超级用户(用户ID为0)的优先权运行;守护进程没有控制终端;守护进程的父进程都是init进程(即1号进程)。
孤儿进程
一个父进程退出后, 它的一个或多个子进程还在运行,那么这些子进程将成为孤儿进程。 孤儿进程将被systemd进程所收养 , 并由systemd进程对它们完成状态收集工作。
僵尸进程
一个子进程结束但是没有完全释放内存(在内核中的task_struct没有释放) , 该进程就成
为僵尸进程。 当僵尸进程的父进程结束后该僵尸进程就会被init进程所收养, 最终被回收。
僵尸进程会导致资源的浪费, 而孤儿进程不会
进程不会因为存在就会自动获取CPU时间的资格。
进程的状态
可运行状态(Runnable)
处于可运行状态的进程, 代表着它获得了需要的全部资源, 只等CPU有时间就可以马上执行。 一旦进程执行了一个不能立即完成的系统调用 , 那么这个进程将转入睡眠状态, 等待资源。
僵化状态(Zombie)
僵化状态的进程,其父进程还没有询问子进程状态时,子进程就已经停止了,称该进程处于僵死状态,资源未释放。为了让父进程能够获取其停止运行的信息,此时子进程的任务数据结构信息还需要保留。
睡眠状态(Sleeping)
睡眠状态的进程, 被阻塞 , 等待资源以唤醒, 也可 以通过其他进程信号或时钟中断唤醒, 进入可运行队列。 有一种深度睡眠状态不可被其他进程信号或时钟中断唤醒。
停止状态(Stopped)
停止状态的进程, 当进程收到相应的信号就会进入 暂停状态。
状态 | 意义 |
Runnable (可运行状态) | 进程可以被执行 |
Sleeping (睡眠状态) | 进程正在等待某些资源 |
Zombie ((僵化状态) | 进程试图消亡 |
STopped (停止状态) | 进程被挂起(不允许执行) |
服务:
长期运行在内存中的进程, 且可以提供一些系统或网络功能
.在麒麟操作系统中 , 程序通过用户的执行来触发, 触发任何一个事件时 , 系统都会将它定义为一个进程。 为了能够管理这个进程, 操作系统会给予这个进程一个PID,同时根据触发这个进程的用户和相关属性关系 , 给予这个PID一组有效的权限设置。
.按照服务安装方式, 服务可以分为两种:
.使用rpm安装包安装的服务:服务的安装位置按照.rpm包设定好的目录。rpm包启动的服务通常会加入到系统服务目录中 , 通过service systemctl等配合参数可以启动(如systemctl start、mysqld)。
.使用源码包编译安装的服务:可以手动指定安装目录。 源码包安装的服务默认需用启动脚本文件的绝对路径配合参数来启动(如/usr/local/nginx/sbin/nginx start)。
状态 | 意义 |
active (running)(运行中) | 正在运行中 |
inactive (dead)(停止状态) | 停止状态(等待启动) |
.在麒麟系统上可以通过三种方式管理服务。
serv i ce
调用/etc/i nit. d/目录下的服务脚本管理服务
/etc/in it.d/
直接对该目录下的服务脚本进行管理
systemctI
是systemd对应的服务管理命令