进程是资源分配的基本单位,又是调度执行的基本单位。比如。用户执行自己的程序,系统就创建一个进程。并为它分配资源,包含各种表、内存空间、磁盘空间、I/O设备等。

然后。把该进程放入进程的就绪队列。进程调度程序选中它。为它分配CPU及其他有关资源,该进程才真正执行。所以,进程是系统中并发执行的单位。

在Mac、Windows NT等採用微内核结构的操作系统中。进程的功能发生了变化:它仅仅是资源分配的单位,而不再是调度执行的单位。在微内核系统中。真正调度执行的单位是线程。因此,实现并发功能的单位是线程。

线程是进程中运行运算的最小单位。亦即运行处理机调度的基本单位。

假设把进程理解为在逻辑上操作系统所完毕的任务,那么线程表示完毕该任务的很多可能的子任务之中的一个。

引入线程的优点

1、易于调度。

2、提高并发性。

通过线程可方便有效地实现并发性。

进程可创建多个线程来运行同一程序的不同部分。

3、开销少。创建线程比创建进程要快。所需开销非常少。

4、利于充分发挥多处理器的功能。

进程和线程的关系

1、一个线程仅仅能属于一个进程,而一个进程能够有多个线程,但至少有一个线程。

2、资源分配给进程。同一进程的全部线程共享该进程的全部资源。

3、处理机分配给线程,即真正在处理机上执行的是线程。

4、线程在运行过程中须要协作同步,不同进程的线程间须要利用消息通信的方法实现同步。

OS - 线程和进程的差别的更多相关文章

  1. [Other]面试复习笔记:线程与进程复习

    基本概念 1. 进程的基本概念 线程(thread)是进程(processes)中某个单一顺序的控制流,也被称为轻量进程(lightweight processes).进程是表示资源分配的基本单位,又 ...

  2. Py修行路 python基础 (二十五)线程与进程

    操作系统是用户和硬件沟通的桥梁 操作系统,位于底层硬件与应用软件之间的一层 工作方式:向下管理硬件,向上提供接口 操作系统进行切换操作: 把CPU的使用权切换给不同的进程. 1.出现IO操作 2.固定 ...

  3. Python网络编程之线程,进程

    一. 线程: 基本使用 线程锁 线程池 队列(生产者消费者模型) 二. 进程:  基本使用  进程锁 进程池 进程数据共享 三. 协程: gevent greenlet 四. 缓存: memcache ...

  4. 线程 VS 进程

    线程是指进程内的一个执行单元,也是进程内的可调度实体. 与进程的区别: (1)地址空间:进程内的一个执行单元;进程至少有一个线程;它们共享进程的地址空间;而进程有自己独立的地址空间; (2)资源拥有: ...

  5. python成长之路 :线程、进程和协程

    python线程 进程与线程的历史 我们都知道计算机是由硬件和软件组成的.硬件中的CPU是计算机的核心,它承担计算机的所有任务. 操作系统是运行在硬件之上的软件,是计算机的管理者,它负责资源的管理和分 ...

  6. 追踪app崩溃率、事件响应链、Run Loop、线程和进程、数据表的优化、动画库、Restful架构、SDWebImage的原理

    1.如何追踪app崩溃率,如何解决线上闪退 当 iOS设备上的App应用闪退时,操作系统会生成一个crash日志,保存在设备上.crash日志上有很多有用的信息,比如每个正在执行线程的完整堆栈 跟踪信 ...

  7. Python开发【第九章】:线程、进程和协程

    一.线程 线程是操作系统能够进行运算调度的最小单位.它被包含在进程之中,是进程中的实际运作单位.一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务 1.t ...

  8. Linux 线程与进程,以及通信

    http://blog.chinaunix.net/uid-25324849-id-3110075.html 部分转自:http://blog.chinaunix.net/uid-20620288-i ...

  9. Day11 线程、进程、协程

    创建线程第一种:import threadingdef f1(arg): print(arg) t = threading.Thread(target=f1, args=(123,))#t.start ...

随机推荐

  1. jQuery动画animate()的使用

    自己定义动画效果: 使用方法:animate(js对象,运行时间.回调函数): js对象:{ }描写叙述动画运行之后元素的样式 运行时间:毫秒数 回调函数:动画运行结束后要运行的函数 html代码: ...

  2. Visual studio 编译时copy文件、文件夹

    项目属性--生成事件 添加命令 xcopy /y /d "$(SolutionDir)Dll\Linphone\*.dll" "$(TargetDir)\Linphone ...

  3. HDOJ 题目3518 Boring counting(后缀数组,求不重叠反复次数最少为2的子串种类数)

    Boring counting Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...

  4. hdoj--1018--Big Number(简单数学)

    Big Number Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total ...

  5. USACO 1.5 Number Triangles

    Number Triangles Consider the number triangle shown below. Write a program that calculates the highe ...

  6. Rep Invariant and Abstraction Function

    * According to the Reading 13 of MIT 6.005 course In order to finish Lab 2, in which the ps 2 gives ...

  7. 7.treeview

    ui mainwindow.h #ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> #include < ...

  8. Oracle Access和filter的区别

    在查看Oracle执行计划的时候经常会遇到Access和filter,脑容量太小,总是分不清两者的区别...稍作整理. Access:表示对应的谓词条件会影响数据的访问路径(是按照索引还是表) Fil ...

  9. Custom Hosting in IIS/WAS

    常常需要与宿主实例进行交互.这对于使用自托管的方式是不可或缺的.当使用IIS或WAS时,不能直接访问宿主.为了克服这个障碍,WCF提供了一个宿主工厂.在.svc文件中使用Factory标签,使用此工厂 ...

  10. 自己写的PHP的mql类

    用类封装的一个数据库的操作,不仅安全,而且会省去很多代码. header('Content-type:text/html;charset="utf-8"'); class mysq ...