操作系统第三篇【线程】

操作系统实验三实验报告 学堂在线-清华操作系统课程-实验三实验报告 阅读详情

线程概述

进入线程的目的:

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

  •  (1) 创建进程,系统在创建一个进程时,必须为它分配其所必需的、除处理机以外的所有资源,如内存空间、I/O设备,以及建立相应的PCB;

  •  (2) 撤消进程,系统在撤消进程时,又必须先对其所占有的资源执行回收操作,然后再撤消PCB;

  •  (3) 进程切换,对进程进行上下文切换时,需要保留当前进程的CPU环境,设置新选中进程的CPU环境,因而须花费不少的处理机时间。

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

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

线程与进程

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

  • ①进程是一个可拥有资源的独立单位,

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

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

  • 线程有3个基本状态:执行、就绪、阻塞。

  • 线程有5种基本操作:

    • 派生、阻塞、激活、 调度、 结束

  • 线程的另一个执行特性是同步。线程中所使用的同步控制机制与进程中所使用的同步控制机制相同。

线程的基础

线程有两个基本类型:

  • 1) 用户级线程:管理过程全部由用户程序完成,操作系统内核心只对进程进行管理。

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

线程的属性:

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

640?wx_fmt=png



如果文章有错的地方欢迎指正,大家互相交流。习惯在微信看技术文章,想要获取更多的Java资源的同学,可以关注微信公众号:Java3y。为了大家方便,刚新建了一下qq群:742919422,大家也可以去交流交流。谢谢支持了!希望能多介绍给其他有需要的朋友

文章的目录导航:

  • https://zhongfucheng.bitcron.com/post/shou-ji/wen-zhang-dao-hang


KingSCADA3.7与KIOSP2:组态监控数据转接层配置与故障排查 工业组态监控系统中,数据转接层是连接现场设备与上位机画面的枢纽。理解其工作原理,掌握设备通信与变量映射的配置方法,对保障SCADA系统稳定运行至关重要。本文以KingSCADA3.7与KIOSP2为例,深入讲解IO服务模块的安装授权、通道建立、变量表设计、MQTT物联网关接入等核心环节,并针对常见故障给出排查思路。通过合理设置采集周期与质量戳,可有效避免画面卡顿和数据错乱。文章结合工程实践,提供从最小通道搭建到批量导入、从协议选型到断线重连的完整路径,适合组态维护工程师和系统集成人员参考。 阅读详情

相关推荐

自己动手写操作系统-第三篇

自己动手写操作系统-第三篇 用U盘启动我的OS

这是一篇java3y的优选文章总结

目录 Java基础: 2018年如何快速学Java: 泛型就这么简单: 注解就这么简单: 数据库连接池就是这么简单: Object对象你真理解了吗? JDK10都发布了,nio你了解多少?: COW奶牛!Copy On Write机制了解一下 给女朋友讲解什么是Optional【JDK 8特性】 还在用Synchronized?Atomic你了解不? JVM如何从入门到放弃的? Java容器 Collection总览 List集合就这么简单【源码剖析】 Map集合、散列表.

Lonely Programmer 8063

kettle信息发送钉钉

由于其他的作业比较多,想要在job中加入一个转化发送消息到钉钉,其他的配置说明直接获取系统的信息。这样也避免直接修改其他的转换和大量的工作量。 步骤: 1、新建一个转换 拉取获取系统信息、获取变量、JavaScript代码、获取access_token组件。 2、获取系统信息设置 拿到需要的信息,比如作业的读写更新删除行数,job的日志内容 这个日志内容同在作业执行页面下输出的日志,所以可以在执行作业时选择是详细日志、基本日志还是错误日志。 3、获取变量 获取变量主要是想要去拿到job的名称,文件名。按

Deng_7788的博客 1448

操作系统之线程的引入和实现

操作系统之线程 线程的引入 人们在设计多道程序OS时,引入进程的概念,从而解决了单处理机环境下程序并发执行的问题。此后,进程一直作为能拥有资源和独立调度运行的基本单位。知道80年代,人们提出比进程还小的概念——线程,试图通过它来提高程序的并发执行程度,以进一步改善系统的服务质量。 如果说引入进程的概念是为了使多个程序可以并发执行,以提高系统资源的利用率和系统吞吐量,那么引入线程的概念就是...

博采众长,自成一派; 1218

AutoDL跑yolo

由于博主在AutoDL的JupyterLab的终端直接上传ZIp文件要么老是再上传中被中断,要么就是上传后使用unzip指令解压显示“找不到”,作为纯小白的我实在太难了!这个文件列出了一个 Python 项目所需的所有依赖包及其精确的版本号。这个文件是 Python 项目中常见的一种方式,用于确保项目在不同环境中都能以相同的依赖包配置运行。3.进入JupyterLab,在文件夹目录中找到上传的文件夹,右键点击“复制路径”。然后在终端中输入以下指令进行切换到该文件夹路径。9.安装成功后开始输入指令开跑!

m0_73804659的博客 1206

AURIX TC397开发板到手第一步:用iLLD库驱动LED流水灯(附完整代码)

本文详细介绍了如何使用英飞凌AURIX TC397开发板和iLLD库实现LED流水灯效果。从开发环境配置到硬件连接,再到完整的代码实现,逐步引导开发者完成项目。文章还提供了优化建议和常见问题解决方案,帮助嵌入式开发新手快速上手。

weixin_30911451的博客 390

操作系统实验指导书(完整版)

操作系统实验指导书               烟台大学计算机学院 操作系统课程组 2008-9-20             第一部分  操作系统上机指导   Linux操作系统环境: RedHat Enterprise Linux ES release 3 (Taroon Update 1) (2.4.21-9.EL) Red Flag Linux r

Henry's Blog 2万+

COMSOL电弧放电仿真:四场耦合与磁流体建模实战指南

多物理场耦合仿真是现代工程中模拟复杂物理过程的重要手段。电弧本质上是电场、磁场、流场与温度场四场相互耦合的非线性系统,其行为由磁流体力学(MHD)方程描述。通过COMSOL等工具构建电弧模型,可准确预测温度分布、流场结构和电极烧蚀,为开关电器设计、等离子体应用等提供数据支撑。在高压电器开断、电弧切割、激光打孔等工程问题中,高效求解MHD耦合模型是关键。然而,电弧仿真涉及物性参数强非线性、边界条件设置、求解器配置以及移动网格处理等挑战。以二维轴对称电弧模型为例,系统梳理磁流体方程落地、多物理场耦合节点配置、收

weixin_30047059的博客 135

【Windows】操作系统之线程(第三篇)

通过将程序划分为多个线程,每个线程负责不同的任务或功能,可以提高代码的可扩展性和可维护性。在并发系统中,任务的执行是部分重叠的,每个任务在执行过程中可能会被暂停,以便其他任务可以执行。在并发编程中,即使某些任务正在执行,其他任务也可以同时运行,从而提高了程序的响应性。例如,当需要同时执行多个独立任务时,将这些任务分配给不同的线程可能比使用单个线程并依赖复杂的异步编程模型更简单。通过并行处理,线程可以在多核或多处理器系统上同时执行多个任务,从而显著提高程序的执行速度。并行指的是同时执行多个任务或操作。

abclui的专栏 683

真格量化-bs套利

#!/usr/bin/env python # coding:utf-8 from PoboAPI import * import datetime import time import numpy as np from copy import * #开始时间,用于初始化一些参数 def OnStart(context) : context.myacc = None #登录交易账号 if context.accounts["回测期权"].Login() : co.

qq_26742269的博客 1321

【仿真技巧】Smart Eye Probe在ADS信号仿真中的应用

Smart_Eye_Probe是一个眼探头,允许灵活数量的输入通道,输入通道支持单端或差分信号的混合,并且,可以使用一个共同的时钟信号触发通道的眼图。目前,仅支持瞬态(Transient)和通道(Channel Sim)逐位模式(Bit by bit)模拟,不支持信道统计(Statistical)模式和DDR总线(DDRSim)仿真。

一只豌豆象的博客 1270

Java线程和操作系统线程的关系

1.操作系统线程模型1.1 线程实现在用户空间下 当线程在用户空间下实现时,操作系统对线程的存在一无所知,操作系统只能看到进程,而不能看到线程。所有的线程都是在用户空间实现。在操作系统看来,每一个进程只有一个线程。过去的操作系统大部分是这种实现方式,这种方式的好处之一就是即使操作系统不支持线程,也可以通过库函数来支持线程。 我们换一种通俗的方式来讲解这段话,首先就是在这在模型下,程序员需要自己实

CringKong的博客 2万+

2024年游戏策划最新面试题及答案

1. **游戏策划**:负责游戏设计和开发的创意和技术过程。2. **主要职责**:设计游戏玩法、故事、角色、世界等。4. **游戏机制**:定义玩家如何与游戏世界互动的规则。13. **引人入胜的角色**:深入的背景故事、个性特征。3. **游戏平衡**:确保游戏公平、有趣且具有挑战性。7. **RPG特点**:角色发展、故事驱动、玩家选择。12. **关卡设计技巧**:挑战性、流动性、视觉引导。11. **游戏关卡设计**:创建游戏世界的不同阶段。5. **游戏循环**:玩家在游戏中重复的行为模式。

guo162308的博客 2320

CPU的线程和操作系统的线程的关系

由操作系统内核管理和调度的线程。

shine_in_moon的博客 2502

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

操作系统之线程和进程

操作系统相关内容, 进程和线程, 并发和并行.

trong_ 的烂笔头 2567

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Java线程VS操作系统线程

hello,小伙伴们好,我是江湖人送外号[道格牙]的子牙老师。 今天给大家分享的文章聚焦讲清楚Java线程与操作系统线程之间的关系。我会通过讲清楚这几个问题来让你对这个关系有一个全面的认识,让你在面试中能够让面试官眼前一亮:嚓,这就是我要找的人啊,太特么靠谱了!帮我“背锅”刚刚好。毕竟我的锅太重,一个人背不动。 大概五个问题: Java线程创建的完整流程 Java的线程是何时与JVM线程绑定的 JVM线程是何时与OS线程绑定的 Java线程对应的OS线程有什么特殊的地方 调用JavaAPI为什么能够操作O

子牙老师 2856

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

线程——操作系统

操作系统、线程、多线程模型、一对一模型、多对一模型、多对一模型

b19839356939的博客 1522

操作系统的线程管理

线程发生 I/O 或页面故障引起的阻塞时,如果调用阻塞系统调用,则内核由于不知道有线程的存在,而会阻塞整个进程从而阻塞所有线程直到磁盘 I/O 完成为止(尽管其他线程是可以运行的),因此同一进程中只能同时有一个线程在运行;也就是说,核外的用户空间的线程通过一个机制和核内的一个内核级线程对应起来,那么调度内核的这个线程上CPU也就是调度核外的线程上的CPU。线程切换速度非常快,创建和销毁线程、线程切换代价等线程管理的代价比内核线程少得多,因为保存线程状态的过程和调用程序都只是本地过程;

前端学习杂记,记录学习中的前端知识。 1292

Java 线程和操作系统的线程有啥区别?

不想看解释的小伙伴可直接翻到文末寻找答案。 1. 用户空间和内核空间 关于内核态和用户态我们在 了解操作系统的那些事儿,从这篇文章开始 这篇文章中已经详细介绍过,这里不再过多赘述。 至于什么是系统空间和用户空间也非常好理解:在操作系统中,内存通常会被分成用户空间(User space)与内核空间(Kernel space)这两个部分。当进程/线程运行在用户空间时就处于用户态,运行在内核空间时就处于内核态: 运行在内核态的程序可以访问用户空间和内核空间,或者说它可以访问计算机的任何资源,不受限制,为所

JavaShark的博客 1947

操作系统线程及线程调度

本文主要从操作系统什么时候会起对线程的调度以及调度的时候内核会做哪些事情的角度简单的介绍一下系统线程方面的知识。

爱写程序的阿波张 995

操作系统进程线程题库

网络课课后题 1、多道程序设计技术是操作系统中最早引入的软件技术,引入它的目的是 A、提高系统的实时响应速度 B、充分利用内存,有利于数据共享 C、充分利用CPU,提高CPU利用率 D、提高文件系统性能,减少内外存之间的信息传输量 解析: 2、下列关于进程控制块PCB的叙述中,哪一个是错误的? A、操作系统利用PCB描述进程的基本特征 B、一个PCB唯一对应一个进程 ...

闲狗的博客 5744

java线程状态与操作系统线程状态的关系

清楚的理解和认知线程状态是java多线程的基础,多线程本质上其实就是管理多个线程的状态,以期在保证线程安全的情况下获得最佳的运行效率(发挥cpu的最佳效能) 首先列举几个容易混淆的线程状态问题文末进行解答: 1Java线程有几种状态 2.线程sleep之后处于什么状态 3.A线程被sychnolozy锁阻塞了,B线程被lock锁阻塞了 AB两个线程是否处于相同状态是什么状态 4.当java线程发生IO阻塞时 线程处于什么状态: 5.java线程和操作系统线程状态是如何对应的: java线程状态: ...

weixin_39650169的博客 2773

《操作系统》——进程与线程

进程与线程的基本介绍

m0_56069910的博客 2394
上一篇: 多线程三分钟就可以入个门了!
下一篇: 操作系统第一篇【引论】
Java3y
Java3y 领域专家: 后端开发技术领域 领域专家: 后端开发技术领域
博客等级 码龄9年 1万+粉丝 509原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值