首页 > 其他分享 >2023-2024-1 20211306 密码系统设计与实现课程学习笔记7

2023-2024-1 20211306 密码系统设计与实现课程学习笔记7

时间:2023-10-28 12:55:25浏览次数:37  
标签:并行算法 2024 并发 20211306 线程 2023 进程 GPT 执行

20211306 密码系统设计与实现课程学习笔记7

任务详情
自学教材第4章,提交学习笔记

  1. 知识点归纳以及自己最有收获的内容,选择至少2个知识点利用chatgpt等工具进行苏格拉底挑战,并提交过程截图,提示过程参考下面内容
    “我在学***X知识点,请你以苏格拉底的方式对我进行提问,一次一个问题”
    核心是要求GPT:“请你以苏格拉底的方式对我进行提问”
    然后GPT就会给你提问,如果不知道问题的答案,可以反问AI:“你的理解(回答)是什么?”
    如果你觉得差不多了,可以先问问GPT:“针对我XXX知识点,我理解了吗?”
    GPT会给出它的判断,如果你也觉得自己想清楚了,可以最后问GPT:“我的回答结束了,请对我的回答进行评价总结”,让它帮你总结一下。
  1. 问题与解决思路,遇到问题最先使用chatgpt等AI工具解决,并提供过程截图
  2. 实践过程截图,代码链接
  3. 其他(知识的结构化,知识的完整性等,提交markdown文档,使用openeuler系统等)

一、第四章学习总结

摘要:本章论述了并发编程,介绍了并行计算的概念,指出了并行计算的重要性;比较了顺序算法与并行算法,以及并行性与并发性。解释了线程的原理及其相对于进程的优势;通过示例介绍了 Pthread 中的线程操作,包括线程管理函数,互斥量、连接、条件变量和屏障等线程同步工具;通过具体示例演示了如何使用线程进行并发编程,包括矩阵计算、快速排序和用并发线程求解线性方程组等方法。

  • 并行计算导论

在早期,大多数计算机只有一个处理组件,称为处理器或中央处理器(CPU)。受这种硬件条件的限制,计算机程序通常是为串行计算编写的。要求解某个问题,先要设计一种算法,描述如何一步步地解决问题,然后用计算机程序以串行指令流的形式实现该算法。在只有一个CPU的情况下,每次只能按顺序执行某算法的一个指令和步骤。但是,基于分治原则(如二叉树查找和快速排序等)的算法经常表现出高度的并行性,可通过使用并行或并发执行来提高计算速度。并行计算是一种计算方案,它尝试使用多个执行并行算法的处理器更快速地解决问题。

顺序算法与并行算法


begin-end代码块中的顺序算法可能包含多个步骤。所有步骤都是通过单个任务依次执行的每次执行一个步骤。当所有步骤执行完成时,算法结束。相反,图的右侧为并行算法的描述,它使用cobegin-coend代码块来指定并行算法的独立任务。在cobegin-coend块中,所有任务都是并行执行的。紧接着cobegin-coend代码块的下一个步骤将只在所有这些任务完成之后执行。

并行性与并发性

通常,并行算法只识别可并行执行的任务,但是它没有规定如何将任务映射到处理组件。在理想情况下,并行算法中的所有任务都应该同时实时执行。然而,真正的并行执行只能在有多个处理组件的系统中实现,比如多处理器或多核系统。在单CPU系统中,一次只能执行一个任务。在这种情况下,不同的任务只能并发执行,即在逻辑上并行执行。

  • 线程

线程的原理

一个操作系统(OS)包含许多并发进程。在进程模型中,进程是独立的执行单元。所有进程均在内核模式或用户模式下执行。在内核模式下,各进程在唯一地址空间上执行,与其他进程是分开的。虽然每个进程都是一个独立的单元,但是它只有一个执行路径。当某进程必须等待某事件时,例如 I/0完成事件,它就会暂停,整个进程会停止执行。线程是某进程同一地址空间上的独立执行单元。创建某个进程就是在一个唯一地址空间创建一个主线程。当某进程开始时,就会执行该进程的主线程。如果只有一个主线程,那么进程和线程实际上并没有区别。但是,主线程可能会创建其他线程。每个线程又可以创建更多的线程等某进程的所有线程都在该进程的相同地址空间中执行,但每个线程都是一个独立的执行单元。在线程模型中,如果一个线程被挂起,其他线程可以继续执行。除了共享共同的地址空间之外,线程还共享进程的许多其他资源,如用户id、打开的文件描述符和信号等。打个简单的比方,进程是一个有房屋管理员(主线程)的房子。线程是住在进程房子里的人。房子里的每个人都可以独立做自己的事情,但是他们会共用一些公用设施,比如同一个信箱、厨房和浴室等。过去,大多数计算机供应商都是在自己的专有操作系统中支持线程。不同系统之间的实现有极大的区别。

线程的优点
与进程相比,线程有许多优点。

线程的缺点
另一方面,线程也有一些缺点,其中包括

  • 线程操作

线程的执行轨迹与进程类似。线程可在内核模式或用户模式下执行。在用户模式下,线程在进程的相同地址空间中执行,但每个线程都有自己的执行堆栈。线程是独立的执行单元,可根据操作系统内核的调度策略,对内核进行系统调用,变为挂起、激活以继续执行等。为了利用线程的共享地址空间,操作系统内核的调度策略可能会优先选择同一进程中的线程,而不是不同进程中的线程。

  • 线程管理函数

创建线程



线程ID

线程终止

线程连接

  • 线程示例程序

用线程计算矩阵的和




用线程快速排序




  • 线程同步

由于线程在进程的同一地址空间中执行,它们共享同一地址空间中的所有全局变量和数据结构。当多个线程试图修改同一共享变量或数据结构时,如果修改结果取决于线程的执行顺序,则称之为竞态条件。在并发程序中,绝不能有竞态条件。否则,结果可能不一致。除了连接操作之外,并发执行的线程通常需要相互协作。为了防止出现竞态条件并且支持线程协作,线程需要同步。通常,同步是一种机制和规则,用于确保共享数据对象的完整性和并发执行实体的协调性。

互斥量





死锁预防



条件变量

与互斥量一样,条件变量也可以通过两种方法进行初始化

生产者——消费者问题






信号量


屏障

用并发线程解线性方程组






Linux中的线程



二、苏格拉底提问GPT













三、Linux代码实现

  • 输出重定向
  • 输入重定向
  • 管道:将前一个的输出作为后一个的输入

  • rm操作

标签:并行算法,2024,并发,20211306,线程,2023,进程,GPT,执行
From: https://www.cnblogs.com/20211306dwb/p/17793970.html

相关文章

  • NOIP2023模拟5联测26 题解
    NOIP2023模拟5联测26题解感觉我这场的官方题解写的是真的挺好的,所以我只能作少量补充。你可以直接去看官方题解,如果你想的话。T1x题解\(n=2\)没啥可说的。\(\color{white}{这档分你要是没拿到那你还是蛮强的。}\)\(n=3\)的时候,我们需要比较\((a_1^{a_2})^{a_3}\)与......
  • SolidEdge2023激活版下载 中文特别版
    SolidEdgeST20功能介绍1、加速你的3D建模拥有更快,更灵活的3D零件和装配建模、扩大利用同步的建模技术、逼真的渲染和增强的2D绘图制作能力,使您能够设计出更好的产品,并且这些产品将领先竞争对手的市场。2、强化了3D草图3D草图可在零件、装配体和钣金环境中加快许多建模场景,例如,通过......
  • 2023.10 ~ 夜已承载心无眠 再巨大的伤悲皆已成灰
    https://www.bilibili.com/video/BV1yX4y1P7Kd「其實沒有那麼特別。我不想把自己定義在樂觀或悲觀的圈圈裡我就是我。我想成為一個追尋所愛就能投注心力的人,即便最後沒有如願,我也會大哭一場,宣洩不滿不甘心不認同,再好好記住這份「得來不易」的回憶。我知道,我沒有那麼特別......
  • 2023-2024-1 20231312《计算机基础与程序设计》第5周学习总结
    作业信息这个作业属于哪个课程<班级的链接>2023-2024-1-计算机基础与程序设计|-这个作业要求在哪里<作业要求链接>2023-2024-1计算机基础与程序设计第四周作业|这个作业的目标《计算机基础概论》第6章《C语言程序设计》第4章|作业正文作业链接教材学习......
  • php反序列化2023/10/28
    题目来源:[第五空间2021]pklovecloud题目代码如下:<?phpinclude'flag.php';classpkshow{functionecho_name(){return"Pkverysafe^.^";}}classacp{protected$cinder;public......
  • 20231005比赛
    T14883.灵知的太阳信仰Description在炽热的核熔炉中,居住着一位少女,名为灵乌路空。据说,从来没有人敢踏入过那个熔炉,因为人们畏缩于空所持有的力量——核能。核焰,可融真金。咳咳。每次核融的时候,空都会选取一些原子,排成一列。然后,她会将原子序列分成一些段,并将每段进行一次......
  • 2023-2024-1 20231414《计算机基础与程序设计》第5周学习总结
    学期(2023-2024-1)学号(20231414)《计算机基础与程序设计》第五周学习总结作业信息这个作业属于哪个课程<班级的链接>(2023-2024-1-计算机基础与程序设计)这个作业要求在哪里<作业要求的链接>(2023-2024-1计算机基础与程序设计第五周作业)这个作业的目标<Pep/9虚拟机,......
  • 2023-2024-1 20231405 《计算机基础与程序设计》第五周总结
    2023-2024-120231405《计算机基础与程序设计》第五周总结作业信息作业属于哪个课程https://edu.cnblogs.com/campus/besti/2023-2024-1-CFAP作业要求在哪里https://edu.cnblogs.com/campus/besti/2023-2024-1-CFAP/homework/13009作业的目标自学《计算机科学......
  • 「Log」2023.10.27 小记
    序幕\(\text{6:50}\):到校,早上稍微墨迹了一小会。一直不会的某个结论差不多会证明了,先写一下题再写写题解。\(\color{blueviolet}{CF1495D}\)此题是好题。考虑对于\(x\)和\(y\)共同的生成树一定包含两者的最短路径。先假设\(x,y\)最短路径有且只有一条,考虑其上一点\(......
  • 工作中遇到的坑:pg数据库保存时间[2023-10-10T01:12:32:910.345343]自动抹零
    今天数据入库的时候遇到了一个小问题。问题postrgrepSQL数据库中存储2023-10-10T01:12:32:910.345343类型的数据,数据库使用timestamp类型,存储完成后,会变成2023-10-1001:12:32.91自动将0抹掉解决方案使用TO_CHAR:数据库数据SELECT*FROMtest执行结果SELECTname,age,TO_CHAR(inp......