操作系统第三篇【线程】

线程概述

进入线程的目的:

程序并发执行所需付出的时空开销,为使程序能并发执行,系统必须进行以下的一系列操作:

  •  (1) 创建进程,系统在创建一个进程时,必须为它分配其所必需的、除处理机以外的所有资源,如内存空间、I/O设备,以及建立相应的PCB;
  •  (2) 撤消进程,系统在撤消进程时,又必须先对其所占有的资源执行回收操作,然后再撤消PCB;
  •  (3) 进程切换,对进程进行上下文切换时,需要保留当前进程的CPU环境,设置新选中进程的CPU环境,因而须花费不少的处理机时间。

引入线程主要是为了提高系统的执行效率,减少处理机的空转时间和调度切换(保护现场信息)的时间,以及便于系统管理。,使OS具有更好的并发性

线程——作为调度和分派的基本单位(取代进程的部分基本功能)

线程与进程

回顾一下进程的基本属性:

  • ①进程是一个可拥有资源的独立单位,
  • ②进程同时又是一个可独立调度和分派的基本单位,

线程与进程的关系:一个进程可以派生出多个线程

  • 线程有3个基本状态:执行、就绪、阻塞。
  • 线程有5种基本操作:
    • 派生、阻塞、激活、 调度、 结束
  • 线程的另一个执行特性是同步。线程中所使用的同步控制机制与进程中所使用的同步控制机制相同

线程的基础

线程有两个基本类型:

  • 1) 用户级线程:管理过程全部由用户程序完成,操作系统内核心只对进程进行管理。
  • 2) 系统级线程(核心级线程):由操作系统内核进行管理。操作系统内核给应用程序提供相应的系统调用和应用程序接口API,以使用户程序可以创建、执行以及撤消线程。

线程的属性:

  • 1)轻型实体;2)独立调度和分派的基本单位;3)可并发执行;4)共享进程资源。 如同每个进程有一个进程控制块一样,系统也为每个线程配置了一个线程控制块TCB,将所有用于控制和管理线程的信息记录在线程控制块中

原文发布于微信公众号 - Java3y(java3y)

原文发表时间:2018-04-17

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏云计算教程系列

# 如何在Ubuntu 16.04上配置绑定为缓存或转发DNS服务器 ###

在学习如何配置网站和服务器时,DNS或域名系统通常是一个难以实现的组件。虽然大多数人可能会选择使用其托管公司或其域名注册商提供的DNS服务器,但创建自己的DNS...

47600
来自专栏木子墨的前端日常

聊聊host中ip/域名映射记录的解析规则

今天宝叔突然在群里发了个问题; host做如下配置,a.com会指向哪里?或者说ping一下a.com结果会是什么?

35220
来自专栏散尽浮华

Nginx+upstream针对后端服务器容错的运维笔记

熟练掌握Nginx负载均衡的使用对运维人员来说是极其重要的!下面针对Nignx负载均衡upstream容错机制的使用做一梳理性说明: 一、nginx的upstr...

1.3K90
来自专栏算法channel

设计模式|结构图汇总

1 创建型模式 1 工厂方法模式 ? 2 抽象工厂模式 ? 3 单例模式 ? 4 建造者模式 ? 5 原型模式 ? 2 结构型模式 1 适配器模式 ? 2 装饰...

36240
来自专栏技巅

Glusterfs之rpc模块源码分析(上)之RPC概述

22270
来自专栏北京马哥教育

Nginx动静分离实现负载均衡

使用Debian环境。安装Nginx(默认安装),一个web项目,安装tomcat(默认安装)等。

12700
来自专栏Java技术分享圈

本地安装谷歌的插件之 CRX格式插件离线安装

方法一 :开发模式安装 [亲测] 1.把下载后的.crx扩展名的离线Chrome插件的文件扩展名改成.zip或者.rar (如何查看Chrome插件的扩展名...

10320
来自专栏猛牛哥的博客

Centos安装简单易用的端口转发工具:rinetd

1.2K50
来自专栏云计算教程系列

如何在Ubuntu 18.04上安装最新的MySQL

MySQL是一个着名的开源数据库管理系统,用于存储和检索各种流行应用程序的数据。MySQL是LAMP堆栈中的M,是一组常用的开源软件,也包括Linux,Apac...

42700
来自专栏编程

10 个例子教你学会 ncat 命令

ncat 或者说 nc 是一款功能类似 cat 的工具,但是是用于网络的。它是一款拥有多种功能的 CLI 工具,可以用来在网络上读、写以及重定向数据。 -- P...

20450

扫码关注云+社区

领取腾讯云代金券