加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

Program Thread 和 Process的不同点

发布时间:2020-12-14 02:04:05 所属栏目:Linux 来源:网络整理
导读: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
  • 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的传送门

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读