一、进程管理

1基本概念: 

  进程:计算机已运行程序的实体。程序本身只是指令的集合,进程才是程序的真正运行。用户下达运行程序的命令后,就会产生进程。

  进程通常有5种状态,其中前3种为进程的基本状态。分别为:运行状态;就绪状态;阻塞状态;创建状态;结束状态。其中,就绪状态指进程获得了除了处理器之外的一切所需资源,一旦得到处理器即可运行。阻塞状态指进程正在等待某一事件而暂停运行,入等待某资源为可用(不包括存储器)或者等待输入、输出完成。

  进程与程序的区别:1.进程是程序及其数据在计算机上的一次运行活动,是一个动态概念。进程是由程序、数据和进程控制块(JCB)组成。程序是一组有序的指令集合,是一个静态概念。2、进程是程序的一次执行过程,具有一定的生命周期,可以永久存在的,可长期保存。3.一个进程可以执行一个或者几个程序,一个程序也可以构成多个进程,进程可以创建进程,但是程序不能形成新的程序。4.进程和程序的组成不同。

  线程:有时也被称为轻量级进程,是程序执行的最小单元。一个标准的线程由线程ID,当前指令指针(PC),寄存器和堆栈(Stack)组成。线程也有就绪、阻塞和运行三种基本状态。

线程是程序中一个单一的顺序控制流程,在单个程序中同时运行多个线程完成不同的工作,被称为多线程

  线程进程区别:1.调度,进程是拥有资源的基本单位,线程是独立调度的基本单位。在同一进程中,线程的切换不会引起进程切换,在不同的进程中线程的切换,会引起进程切换。2.资源,进程是拥有资源的基本单位,线程不拥有资源,但是线程可以共享其隶属进程的系统资源。3.并发,进程可以并发执行,同一个进程内的多个线程也可以并发执行。4.系统开销,创建和撤销进程时,系统都要为之分配或者回收资源,线程切换时只需要保存少量寄存器内容,开销少,同一个进程内的多个线程共享进程的地址空间,因此这些线程之间的同步和通信易实现,甚至无需操作系统干预。5.地址空间和其他资源,进程的地址空间之间互相独立,同一个进程的各个线程共享进程资源。6.进程间通信需要借助操作系统,而线程间可以直接通过读写进程数据段来进行通信。

进程通信和进程同步

  Linux线程间通信:互斥体(互斥量),信号量,条件变量

  Windows进程间通信:管道、共享内存、消息队列、信号量、socket。

  Windows线程间通信:临界区(Critical Section)、互斥量(Mutex)、信号量(信号灯)(Semaphore)、事件(Event)。注意:临界区与互斥体的区别:临界区智能用来同步本进程内的线程,而不能用来同步多个进程中的线程。互斥量,信号量,事件都可以跨越进程使用来进行同步数据操作;临界区是非内核对象,只在用户太进行锁操作,速度快,互斥体是内核对象,在核心态(需要处理器参与)运行,速度慢。

  进程的调度算法:先来先服务算法(FCFS),短作业优先(SJF),优先级调度算法,高相应比优先算法,时间片轮转算法,多级反馈队列调度算法。

  死锁:多个进程因竞争资源而造成的一种僵局(互相等待),若无外力做用,这些进程都将无法向前推进。

  死锁产生的原因:系统资源的竞争,进程推进顺序非法。

  死锁产生的必要条件:互斥条件,不剥夺条件,请求和保持条件,循环条件。

银行家算法是著名的死锁避免算法。

时间: 2024-12-29 23:28:13

一、进程管理的相关文章

linux进程管理

进程管理 进程 Process 某应用程序打开的进程 PID Process ID 类型: 用户空间进程 内核空间进程 静态查看进程的状态 # ps [[email protected] ~]# ps >>>>查看本终端的进程 PID TTY          TIME CMD 4206 pts/0    00:00:00 bash 4378 pts/0    00:00:00 ps 选项的使用方式: BSD风格:选项没有横线- ps aux SysV风格:选项需要带有横线-  

Linux进程管理与调度-之-目录导航【转】

转自:http://blog.csdn.net/gatieme/article/details/51456569 版权声明:本文为博主原创文章 && 转载请著名出处 @ http://blog.csdn.net/gatieme 目录(?)[-] 项目链接 进程的描述 进程的创建 进程的加载与运行 进程的退出 进程的调度 调度普通进程-完全公平调度器CFS 日期 内核版本 架构 作者 GitHub CSDN 2016-07-21 Linux-4.6 X86 & arm gatieme

Linux进程管理工具 Supervisord 的安装 及 入门教程

Supervisor是一个进程管理工具,官方的说法: 用途就是有一个进程需要每时每刻不断的跑,但是这个进程又有可能由于各种原因有可能中断.当进程中断的时候我希望能自动重新启动它,此时,我就需要使用到了Supervisor 主要就两个命令: supervisord : supervisor的服务器端部分,启动 supervisor 就是运行这个命令 supervisorctl:启动 supervisor 的命令行窗口. 安装(CentOS): 方式一: yum -y install python-

Linux进程管理简谈

Linux系统进程管理简谈 进程是什么? 简单来说进程是一个正在执行的程序的一个副本,存在生命周期,有段指令和代码在不断运行. linux内核存储信息的固定格式:task struct 进程的相关信息存储在链表中 多个任务的task struct组件的链表:task list 进程的创建:父进程创建子进程(内核创建init进程,剩余一切进程有init及其子进程进程创建) 父进程创建子进程时向内核调用fork()来创建子进程并且通过调用clone()复制父进程的信息给子进程 Linux进程的优先级

Linux之进程管理及Shell脚本

使用!来调用过往命令 !! 重复执行上一条指令 !a 重复执行上一条以a为首的指令 !nubmer 重复执行上一条在history表中记录号码为number的指令 !-number重复执行前第number条指令 ailas abc='cd xxxxxxxxxxx/xxxxxxxx/xxxxxxxxxxxxx' unalias abc " "将一串字符当成字符串来看,可以转译特殊字符 ' '将一串字符当成字符串来看,无法转译特殊字符 ·能够返回命令执行的结果 echo `uname -a

进程管理

一.进程 1.概念 内核的功用:进程管理.文件系统.网络功能.内存管理.驱动程序.安全功能等 Process: 运行中的程序的一个副本,是被载入内存的一个指令集合 进程ID(Process ID,PID)号码被用来标记各个进程 UID.GID.和SELinux语境决定对文件系统的存取和访问权限, 通常从执行进程的用户来继承 存在生命周期 task struct:Linux内核存储进程信息的数据结构格式 task list:多个任务的的taskstruct组成的链表 进程创建: init:第一个进

supervisor——进程管理工具

Supervisor (http://supervisord.org) 是一个用 Python 写的进程管理工具,可以很方便的用来启动.重启.关闭进程(不仅仅是 Python 进程).除了对单个进程的控制,还可以同时启动.关闭多个进程,比如很不幸的服务器出问题导致所有应用程序都被杀死,此时可以用 supervisor 同时启动所有应用程序而不是一个一个地敲命令启动. 1.安装 Supervisor 可以运行在 Linux.Mac OS X 上.如前所述,supervisor 是 Python 编

第五课 进程管理

unix_c_05.txt================第五课 进程管理================一.基本概念------------1. 进程与程序~~~~~~~~~~~~~1) 进程就是运行中的程序.一个运行着的程序,可能有多个进程.进程在操作系统中执行特定的任务.2) 程序是存储在磁盘上,包含可执行机器指令和数据的静态实体.进程或者任务是处于活动状态的计算机程序.2. 进程的分类~~~~~~~~~~~~~1) 进程一般分为交互进程.批处理进程和守护进程三类.2) 守护进程总是活跃的

进程管理、内存管理、存储管理初步了解

进程管理 进程需要一定的资源(包括CPU时间.内存.文件.I/O设备)以完成其任务.这些资源可以在进程创建时分配给进程,也可以在执行进程时分配给进程.除了在创建时得到各种物理和逻辑资源外,进程还可以接受传输过来的各种初始化数据(输入). 需要注意:程序本省并不是进程,程序是被动的实体,而进程是一个活动的实体. 进程与线程的定义: 进程是具有一定独立功能的程序关于某个数据集合上的依次运行活动,进程是系统进行资源分配和调度的独立单位. 线程是进程的一个实体,是CPU和分配的基本单位.线程自己基本不拥

Linux中的进程管理

什么是进程,顾名思义嘛!就是正在进行的程序,在Linux中,只要开启服务就会在后台对应的有了进程.那么进程管理究竟对于我们的日常运维工作有什么用呢? 主要作用有三点: 首先,最重要的是查看服务器健康状态 第二,查看系统中运行的所有进程 第三,杀死进程 我们用到进程最重要的作不就是用就是用来查看服务器的健康状态,做运维的不就是为了保证服务器能够一直这么正常运行吗? ① top命令 -->查看服务器健康状态 终端直接输入top,如图: 这里面最重要的就是前面的那5行,其中几个比较重要的参数如下: l