【操作系统】进程,线程与多核处理

【操作系统】进程,线程与多核处理


进程,线程与多核处理

进程

引入进程的目的是为了使多个程序可以并发执行,以提高资源的利用率和系统的吞吐量。、

一,进程的概念

是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。 qq,讯雷等软件工作,内部需要很多个模块相互协调,而这些模块都是一个进程。

程序是一个静态概念,而进程是一个动态的概念,他着眼于活动运行过程。一个程序可以有很多个进程组成,而一个进程又由很多个线程组成。

进程是资源分配和调度的基本单位。

进程的特点:

  • 动态性:由产生,到消亡
  • 并发性:多个进程可以同时装入内存中
  • 独立性:进程是操作系统完成工作的基本单元
  • 异步性:各个并发的进程相互独立
  • 结构性:由程序段,数据段,进程控制块(PCB)组成

二,进程的实体

共由三部分组成

  1. 程序:进程运行所对应的执行代码

  2. 数据集合:所用到的数据和开辟的工作区域

  3. 进程控制块(PCB):

    • 用于描述和标志进程,包括进程名称,当前状态,进程的优先级等

    • PCB是进程存在的唯一标志

三,进程的状态与转换

进程的三种基本状态:

  1. 就绪状态
  2. 执行状态
  3. 阻塞状态(等待状态)

四,进程控制

内核:是操作系统中最常用,最核心的内容,他可以对进程进行控制,在操作系统中必须设置一个机构,他具有创建进程,撤销进程以及其他管理功能。

通过内核中定义的“原语”来控制进程,原语可分为四大类:

  1. 创建原语
  2. 撤销原语
  3. 阻塞原语
  4. 唤醒原语

原语的特点:一旦执行,不能中断。(注意原语只能对进程操作,而不能操作线程

五,进程和程序的区别

进程的定义及其与程序的区别

  • 进程定义:进程是程序段的一次运行过程,他是系统资源分配的一个独立单位
  • 他着眼点是运行的过程,是一个动态的概念
  • 而程序是一组指令的集合是一个静态的概念

线程

引入线程的目的是为了减少某个进程并发执行时所付出的时空开销

一,线程简介

线程是比进程更小的能独立运行的基本单位,因此,在为其创建,撤销和切换时,所需要付出的开销也就更少,因此能显著提高并发的程度。

QQ 和浏览器是两个进程,浏览器进程里面有很多线程,例如 HTTP 请求线程、事件响应线程、渲染线程等等,线程的并发执行使得在浏览器中点击一个新链接从而发起 HTTP 请求时,浏览器还可以响应用户的其它事件。

线程是系统调度的基本单位

二,线程的状态

与进程类似,也包含:

  1. 就绪状态
  2. 执行状态
  3. 阻塞状态(等待状态)

三,线程的控制

线程的控制是通过操作系统提供的“线程操作库”来控制的。

常见的操作包括:

  1. 创建
  2. 撤销
  3. 等待
  4. 线程让权(线程自己放弃cpu的使用)

进程通信和线程通信

一个程序至少有一个进程,一个进程至少有一个线程。

进程是内存分配的基本单位;

线程是系统调度的基本单位;

即同一个进程下的所有线程,共有着同一内存空间,所以同一进程间线程通信的方式为: 访问共享变量

不同进程占有不同的内存资源,所以并不能直接通信,需要其他方式,例如:

  1. 管道
  2. 消息队列
  3. 信号量:不能传递复杂消息,只能用来同步
  4. 共享内存:使不同进程共享同一块内存,能够很容易控制容量,速度快,但为了安全,要使用同步策略(信号量或PV操作)。

多处理器,超线程和多核

你是个包工头,以前你只能指挥1个工人去盖一个房子。你就是一个核心,这1个工人就是一个线程。这叫单核单线程。
后来你觉得这么做太慢,一个工人搬砖时候完全可以多点工人去做其他的比如砌墙,打桩。后来你又招了一群工人。这叫单核多线程。
再后来你发现,你同时只能指挥一群人盖一个房子,为了加快盖房子速度,你又找了你兄弟做另一个包工头。这样就变成了多核多线程。

  1. 多处理器结构:
    • 一个电脑有多个处理器,共同执行任务
    • 成本比较高
  2. 超线程:
    • 与一般的并发不同,超线程是真正意义上的并行,宏观和微观上都是真并行
    • 虽然可以让一个cpu同时执行任务,但是不像多个CPU资源是独立的,还是会存在阻塞的状态
  3. 多核结构:
    • 一个CPU有多个执行核,每个核有自己的资源
  4. 多核超线程:
    • 就是将多核和超线程结合在一起

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×