• Thread is for execution

    • Kernel level thread, physical parallelism

      • Cores Divide work amount of physical cores / CPU
      • Load balancing
      • Data Splitting
        • Which will lead to data dependency coodination and message passing
      • Bad thing for multiple cores is this is hard for Testing and debugging
    • User level thread only have logical parallelism
      • Example, Read from user input is blocking; we have to work on it to make it logical parallelism
  • Process is for resource

What is Program

Program是一个存在disk中且断电或重启不会消失可执行文件,存储在存储媒介中,以实体文件的形态存在

A program is an executable file residing on the disk (secondary storage) in a directory. It is also termed as a set of instructions stored in the secondary storage device that are intended to carry out a specific job. It is read into the primary memory and executed by the kernel.

本文来自 Abbymz 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/Abby210/article/details/51225034?utm_source=copy

或者可以称之为persistently 的文件,断电也不会消失。

What is Process ?

当program被执行之后,就变成了进程。执行者的权限和程序所需的资料都会载入到内存中,OS会给予这些内存单元一个pid。

Unit of resource ownership (allocation) and unit of protection

text, Code of Programmer
Data
Heap
Stack

一个program可以创建出很多个进程,关机或停电会死掉

Process的组成

  • Permission user or kernel
  • Priority
  • Files
  • ID
    • PID
    • PPID
    • Folk
    • UserID
  • Protected access to
    • Processors
    • other process
    • Files
    • I/O
  • A virtual space that holds the process image

What is Thread ?

线程称之为Lightweight Process,一个进程可以有多个线程,他们共享一片内存

  • has access to the same data

    • When one thread alters a data, other threads see the results
    • When one thread open a file, other threads can also access that file.

Unit of dispatch or unit of execution

多线程的好处

  • 开启线程要快于开启进程
  • 关闭线程要快于关闭进程
  • 切换线程要快于切换进程
  • 线程可以相互通讯

什么叫Multithreading

The ability of an OS to support multiple, concurrent paths of execution within a single process.

Process and thread states

  • Ready

    • new process usually set as read state
    • At this time scheduler is not pick it up yet.
      • If it get picked by scheduler and running in CPU, then goes to Running State
      • If it get external event, something like lock, then goes to block
  • Running,
    • Scheduler picked it up, and CPU is run this instruction

      • If it get finished, goes to Exit states
      • If it get IO interrupts, goes to ready, blocked status
      • If it can not get the resource which is conflict with other process, goes to deadlock
  • Block
    • If it lock (wait able ) is release, or IO is completed, then goes to Ready
  • Deadlock
  • Exit (Zombie State)
    • When process is finished, waiting for cleaning up

How Deadlock happen ?

  • When process A has resource a, and it need resource b from process B.
  • At the same time, process B need resource a from A
  • Then those process gonna have deadlock due to both of them can get the resource they need.

Reference

https://slideplayer.com/slide/5219996/


想要看到更多玮哥的学习笔记、考试复习资料、面试准备资料?想要看到IBM工作时期的技术积累和国外初创公司的经验总结?

敬请关注:

玮哥的博客 —— CSDN的传送门

玮哥的博客 —— 简书的传送门

玮哥的博客 —— 博客园的传送门

Program Thread 和 Process的不同点的更多相关文章

  1. MS SQL错误:SQL Server failed with error code 0xc0000000 to spawn a thread to process a new login or connection. Check the SQL Server error log and the Windows event logs for information about possible related problems

          早晨宁波那边的IT人员打电话告知数据库无法访问了.其实我在早晨也发现Ignite监控下的宁波的数据库服务器出现了异常,但是当时正在检查查看其它服务器发过来的各类邮件,还没等到我去确认具体情 ...

  2. [CareerCup] 16.1 Thread and Process 线程和进程

    16.1 What's the difference between a thread and a process? 进程Process是程序执行时的一个实例.一个进程是被分配系统资源的独立单元,每个 ...

  3. It is not based on WSGI, and it is typically run with only one thread per process.

    Tornado Web Server — Tornado 5.1.1 documentation http://www.tornadoweb.org/en/stable/

  4. Linux Process/Thread Creation、Linux Process Principle、sys_fork、sys_execve、glibc fork/execve api sourcecode

    相关学习资料 linux内核设计与实现+原书第3版.pdf(.3章) 深入linux内核架构(中文版).pdf 深入理解linux内核中文第三版.pdf <独辟蹊径品内核Linux内核源代码导读 ...

  5. process vs thread

    process vs thread http://blog.csdn.net/mishifangxiangdefeng/article/details/7588727 6.进程与线程的区别:系统调度是 ...

  6. Difference between Process and thread?

    What are the differences between a process and a thread? How are they similar? How can 2 threads com ...

  7. 一个进程(Process)最多可以生成多少个线程(Thread)

    1.进程中创建线程的限制 默认情况下,一个线程的栈要预留1M的内存空间,而一个进程中可用的内存空间只有2G,所以理论上一个进程中最多可以开2048个线程,但是内存当然不可能完全拿来作线程的栈,所以实际 ...

  8. 如何执行一条命令在C#里面。Process

    Download source - 4.15 KB Introduction It is normal practice to open the Windows command prompt and ...

  9. How to Analyze Java Thread Dumps--reference

    原文地址:http://architects.dzone.com/articles/how-analyze-java-thread-dumps The Performance Zone is pres ...

随机推荐

  1. AI - TensorFlow - 示例03:基本回归

    基本回归 回归(Regression):https://www.tensorflow.org/tutorials/keras/basic_regression 主要步骤:数据部分 获取数据(Get t ...

  2. Mybatis:缓存,动态SQL,注解SQL以及动态标签使用

    1 转义字符 字符 转义 描述 < < 小于 <= <= 小于等于 > > 大于 >= >= 大于等于 <> <> 不等于 &a ...

  3. WebGL three.js学习笔记 阴影与实现物体的动画

    实现物体的旋转.跳动以及场景阴影的开启与优化 本程序将创建一个场景,并实现物体的动画效果 运行的结果如图: 完整代码如下: <!DOCTYPE html> <html lang=&q ...

  4. OSPF 基础实验

    一.环境准备 1. 软件:GNS3 2. 路由:c7200 二.实验操作 实验要求: 1.掌握多区域的 OSPF 配置方法. 2.区别不同区域的路由. 3.掌握 OSPF 的路由汇总配置. 4.掌握  ...

  5. EIGRP 基础实验

    一.环境准备 1. 软件:GNS3 2. 路由:c7200 二.实验操作 实验要求: 1.掌握EIGRP 的基本配置 2.掌握EIGRP 的通配符掩配置方法 3.掌握EIGRP 的自动汇总特性,理解E ...

  6. ifarme的自适应高度问题

    Html: <iframe id="iframeid" src="/Home/DisplayiIndex"></iframe> JS部分 ...

  7. DFS(深度优先搜索)

    简介 DFS的过程是一个递归过程,它是从图中的某个顶点开始,首先访问起始点v,然后选择一个与顶点v相邻的且没有被访问的顶点w,以w为起始顶点,在进行DFS,直到图中所有与v相邻的顶点都被访问过为止. ...

  8. 简单几步用纯CSS3实现3D翻转效果

    作为前端开发人员的必修课,CSS3翻转能带我们完成许多基本动效,本期我们将用CSS3实现hover翻转效果~ 第一步非常简单,我们简单画1个演示方块,为其 添加transition和transform ...

  9. ionic cordova build android error: commamd failed with exit code eacces

    问题: 电脑的gradle版本为Gradle 5.0,然而 因为 添加的android 平台为6.3.0 gradle 是 4.1版本 电脑已存在 gradle的情况下,add platform 成功 ...

  10. Soot生成代码控制流图

    Soot可以对代码进行分析,提供了多种字节码分析和变换功能,通过它可以进行过程内和过程间的分析优化,以及程序流图的生成,还能通过图形化的方式输出. http://www.brics.dk/SootGu ...