进程与线程

原创 2015年11月18日 20:46:20

进程与线程

进程是用开飞陪系统资源的,进程包含多个线程,一个进程的启动包含主线程的启动

了解概念

cpu好比一个工厂,每个车间是一个进程,车间里面的工人是线程

一个进程的内存空间是共享的,每个线程都可以使用这些共享的内存,特别的:某些内存空间,当一个线程使用时,其他线程必须等待它结束,才能使用这块内存,这就需要加“互斥锁”(Mutex),防止多个线程同时读写某一块内存区域;某些内存空间,可以提供给固定数目的线程使用,这时候需要“信号量”(Semaphore),用来保证多个线程不会互相冲突,Mutex 是 Semaphore 的 一种特殊情况。

操作系统的设计,可以归结为三点

  1. 以多进程形式,允许多个任务同时执行;
  2. 以多线程形式,允许单个任务分成不同的部分运行;
  3. 提供协调机制,一方面阻止进程之间和线程之间产生冲突,另一方面允许进程之间和线程之间共享资源;

命令相当于进程 进程间可以进行通讯(通讯机制)
实现进程之间的通讯方法:管道通讯 、socket套节字、 信号 、消息队列

进程(process)

终端下对进程的操作:(需要包含头文件unistd.h)(简称few)

  1. fork 创建一个新的子进程(通过系统调用流程,由内核来完成创建) 返回进程ID
    (返回0代表子进程,返回1代表父进程,返回值 <0 代表出现错误)
  2. getpid : 获取当前进程的id
  3. gitppid : 获取父进程的id
  4. exec : (把进程中的文本段进行替换)在进程中调用别的程序或命令
  5. wait 收尸 进程结束后,父进程要对子进程收尸,保证资源不会被浪费掉,一般父进程会晚于子进程挂掉 (结束状态为0表示正常退出)
  6. sleep(100); :不让进程结束

进程与进程之间的内存空间是彼此独立的,父进程与子进程刚开始创建的时候公用数据,但是一旦创建了,就会彼此独立,子进程是被父进程创建的。

防御式编程,先把错误的情况写出来

!狭义的定义:进程就是一段程序的执行过程

广义的定义:具有独立功能的程序对某个数据集合的一次运行活动,是操作系统动态执行的基本单元,在传统的操作系统中,进程既是基本的分配单元,也是基本的执行单元

主要两点:

第一、进程是一个实体 包括文本区域、数据区域、堆栈

  1. 文本区域(text region):存储处理器执行的代码
  2. 数据区域(data region):存储变量和动态分配的内存
  3. 堆栈区域(stack region):存储着活动过程中调用的指令和本地变量

第二、进程是一个“执行中的程序”

进程的缺点

  1. 不同的进程之间共享状态信息困难 (需要显式的使用)
  2. 进程之间通讯比较慢

线程

这里写图片描述

这里写图片描述

线程是一个独立的执行单元

cpu通过优先级和时间片对多个线程进行控制,有一些调度算法,来切换线程。

线程中没有父子关系

线程之间的切换,需要开销时间,但是很小。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

线程与进程大全

  • 2016-02-25 14:45
  • 328KB
  • 下载

线程与进程

  • 2015-05-11 20:08
  • 306KB
  • 下载

进程与线程的一个简单解释

进程(process)和线程(thread)是操作系统的基本概念,但是它们比较抽象,不容易掌握。 最近,我读到一篇材料,发现有一个很好的类比,可以把它们解释地清晰易懂。 1. ...

进程线程区别

  • 2012-12-13 14:28
  • 190KB
  • 下载

线程跟进程的 区分

  • 2014-09-01 20:36
  • 50KB
  • 下载

进程和线程的简单解释

今天看新闻的时候,发现了一篇讲进程与线程的文章,觉得描述的挺生动的,就转了过来,跟大家分享一下。      进程(process)和线程(thread)是操作系统的基本概念,但是它们比较抽象,不容易掌...

进程线程笔记

  • 2014-09-23 22:04
  • 12KB
  • 下载

进程与线程详解

  • 2014-03-12 14:10
  • 616KB
  • 下载

进程线程 到 异步编程

命名空间:using System.Threading;进程~线程 进程,Process。    线程,Thread,执行线程,体现程序的真实执行情况。小结  -§- 同一进程的所有线程共享相同...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)