在开始之前,我们先来了解一些基本的概念: 1. 程序, 没有在运行的可执行文件 进程, 运行中的程序 2. 进程调度的方法: 按时间片轮转 先来先服务 短时间优先 按优先级别 3. 进程的状态: 就绪 ->> 运行 ->> 等待 运行 ->> 就绪 //时间片完了 等待 ->> 就绪 //等待的条件完成了 查看当前系统进程的状态 ps auxf status: D Uninterruptible sleep (usually IO) R Running or…
进程间通信概述 需要进程通信的原因: 数据传输 资源共享 通知事件 进程控制 Linux进程间通信(IPC)发展由来 Unix进程间通信 基于System V进程间通信(System V:UNIX系统的一个分支) POSIX进程间通信(POSIX:可移植操作系统接口,为了提高UNIX环境下应用程序的可移植性.很多其他系统也支持POSIX标准(如:DEC OpenVMS和Windows).) 现在Linux使用的进程间通信方式包括: 共享文件 管道(pipe).命名管道(FIFO):只能传输无格式…
进程 现实生活中 在很多的场景中的事情都是同时进行的,比如开车的时候 手和脚共同来驾驶汽车,再比如唱歌跳舞也是同时进行的: 如下是一段视频,迈克杰克逊的一段视频: http://v.youku.com/v_show/id_XMzE5NjEzNjA0.html?&sid=40117&from=y1.2-1.999.6 试想:如果把唱歌和跳舞这2件事分开以此完成的话,估计就没有那么好的效果了 程序中 如下程序,来模拟“唱歌跳舞” 这件事情 from time import sleep def…
课程目标: 构建一个基于主机系统的多客户即时通信/聊天室项目 涉及的理论知识 进程控制:僵尸进程/孤儿进程.进程控制.守护进程... 进程间通信:管道.命名管道.信号... 多线程编程: 锁.信号量... 参考教程 Robert Love, Linux System program …… 进程结构 进程由程序.数据和进程控制三部分组成 进程的阻塞态:由于访问设备时,没有数据输出的等待状态. 进程互斥:当有若干进程都要使用某一共享资源时,任何时刻最多允许一个进程使用,其他要使用该资源的进程必须等待…
进程相关的概念 程序与进程 程序,是指编译好的二进制文件,在磁盘上,不占用系统资源(CPU.内存.打开的文件.设备.锁等等). 进程,是一个抽象的概念,与操作系统原理联系紧密.进程是活跃的程序,占用系统资源.在内存中执行(程序运行起来,产生一个进程). 程序 --> 剧本(纸),进程 -->戏(舞台.演员.灯光.道具等等).同一个剧本可以在多个舞台同时上演.同样,同个程序也可以加载为不同的进程(彼此之间互不影响).如:同时开两个终端.各自都有一个bash,但彼此ID不同. 并发 并发,在操作系…
1.创建守护进程(Deamon) 守护进程的概念与作用 后台服务程序 – 系统服务,进程名字往往以’d’结尾,生存周期比较长(系统装入时启动,关闭时候终止.系统装入两种启动方式:1从启动脚本.etc/rc.d中启动:2由作业规划进程crond启动.也可以从用户终端启动,且独立于控制终端),周期性执行某种任务或等待处理某些发生的事件. 例如:httpd ftpd lqd crond 控制终端:从一个终端开始运行的进程都会依附于这个终端,这个终端就称为这些进程的控制终端.当控制终端关闭,依附于该终端…
1.如果说文件是unix系统最重要的抽象概念,那么进程仅次于文件.进程是执行中的目标代码:活动的.生存的.运行的程序. 除了目标代码进程还包含数据.资源.状态以及虚拟化的计算机. 2.进程体系: 每一个进程都有一个唯一的正整数标识,即进程ID(pid).第一个进程的pid是1,接下来每一个进程接受一个新的唯一的pid. 在linux中,进程有一个严格的层次结构,这就是广为人知的进程树.进程树以第一个进程,也就是init进程为根.新进程通过fork()系统调用创建.fork()复制了调用进程,原进…
1.调试(PDB) 代码: [root@master gaoji]# vim test2.py 1 #!/usr/local/bin/python3 2 # -*- coding:utf-8 -*- 3 4 def getAverage(a,b): 5 result = a + b 6 print("result=%d" %result) 7 return result 8 9 a = 100 10 b = 200 11 c = a + b 12 ret = getAverage(a,…
在 Windows 平台下,我们能够通过双击运行可运行程序,让这个可运行程序成为一个进程.而在 Linux 平台.我们能够通过 ./ 运行,让一个可运行程序成为一个进程. 可是.假设我们本来就执行着一个程序(进程).我们怎样在这个进程内部启动一个外部程序,由内核将这个外部程序读入内存.使其执行起来成为一个进程呢?这里我们通过 exec 函数族实现. exec 函数族.顾名思义,就是一簇函数,在 Linux 中,并不存在 exec() 函数,exec 指的是一组函数,一共同拥有 6 个: [cpp…
我们知道,线程间同步有多种方式,比如:信号量.互斥量.读写锁,等等.那进程间如何实现同步呢?本文介绍两种方式:互斥量和文件锁. 互斥量mutex 我们已经知道了互斥量可以用于在线程间同步,但实际上,互斥量也可以用于进程间的同步.为了达到这一目的,可以在pthread_mutex_init初始化之前,修改其属性为进程间共享.mutex的属性修改函数主要有以下几个: 主要应用函数: pthread_mutexattr_t mattr 类型: 用于定义互斥量的属性 pthread_mutexattr_…