- @[toc]对多种进程间通信方式的介绍在这篇总结过了:进程间通信,不过没有提互斥,因为我一直是把互斥和通信分开的。这一篇的话将从互斥方面入手,按时间线铺开。这不最近要写自己写网络层了嘛,操作系统的老底子得翻翻。 临界区避免竞争条件的问题也可以用一种抽象的方式进行描述,一个进程的一部分时间做内部计算或另外一些不会应发竞争条件的操作。在某些时候进程可能需要访问共享内存或共享文件,或执行另外一些会... @[toc]对多种进程间通信方式的介绍在这篇总结过了:进程间通信,不过没有提互斥,因为我一直是把互斥和通信分开的。这一篇的话将从互斥方面入手,按时间线铺开。这不最近要写自己写网络层了嘛,操作系统的老底子得翻翻。 临界区避免竞争条件的问题也可以用一种抽象的方式进行描述,一个进程的一部分时间做内部计算或另外一些不会应发竞争条件的操作。在某些时候进程可能需要访问共享内存或共享文件,或执行另外一些会...
- 1. makefile很重要什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义。特别在Unix下的软件编译,你就不能不自己写makefile... 1. makefile很重要什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义。特别在Unix下的软件编译,你就不能不自己写makefile...
- 进程与线程对于操作系统来说,一个任务就是一个进程(Process),比如打开一个浏览器就是启动一个浏览器进程,打开一个记事本就启动了一个记事本进程,打开两个记事本就启动了两个记事本进程,打开一个 Word 就启动了一个 Word 进程。有些进程还不止同时干一件事,比如Word,它可以同时进行打字、拼写检查、打印等事情。在一个进程内部,要同时干多件事,就需要同时运行多个“子任务”,我们把进程内... 进程与线程对于操作系统来说,一个任务就是一个进程(Process),比如打开一个浏览器就是启动一个浏览器进程,打开一个记事本就启动了一个记事本进程,打开两个记事本就启动了两个记事本进程,打开一个 Word 就启动了一个 Word 进程。有些进程还不止同时干一件事,比如Word,它可以同时进行打字、拼写检查、打印等事情。在一个进程内部,要同时干多件事,就需要同时运行多个“子任务”,我们把进程内...
- 操作系统操作系统(Operation System, OS)是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才能运行。操作系统是计算机系统资源的管理者,分为:处理机管理(CPU)存储器管理(内存)文件管理(外存)设备管理(I/O)操作系统是用户与计算机硬件系统之间的接口,同时也是计算机硬件和其他软件的接口,分为:命令... 操作系统操作系统(Operation System, OS)是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才能运行。操作系统是计算机系统资源的管理者,分为:处理机管理(CPU)存储器管理(内存)文件管理(外存)设备管理(I/O)操作系统是用户与计算机硬件系统之间的接口,同时也是计算机硬件和其他软件的接口,分为:命令...
- @TOC 第一章 什么是linux多用户,多任务,支持多线程和多CPU的操作系统,linux的应用领域:免费,稳定,高效的, 一般运行在大型服务器上常用目录介绍:目录名说明/ 根目录一般根目录下只存放目录,有且只有一个根目录/home 家目录系统默认的家目录,新增用户账号时,用户的家目录都存放在此目录下/root系统管理员root的家目录/bin/usr/bin可执行二进制文件的目录/etc... @TOC 第一章 什么是linux多用户,多任务,支持多线程和多CPU的操作系统,linux的应用领域:免费,稳定,高效的, 一般运行在大型服务器上常用目录介绍:目录名说明/ 根目录一般根目录下只存放目录,有且只有一个根目录/home 家目录系统默认的家目录,新增用户账号时,用户的家目录都存放在此目录下/root系统管理员root的家目录/bin/usr/bin可执行二进制文件的目录/etc...
- 我们知道在Docker容器里是无法访问到宿主操作系统的文件目录的,但这种隔离是怎么实现的呢?其实一点也不神奇——利用了Linux系统的内部命令chroot。chroot能将进程的根目录设置成任意指定的目录。使用chroot我们能创建一个新的进程,并且以chroot执行时传入的参数作为新进程的根目录。因为新进程创建之后就无法访问除了新进程创建时传入chroot参数之外的其他文件目录,为了确保这... 我们知道在Docker容器里是无法访问到宿主操作系统的文件目录的,但这种隔离是怎么实现的呢?其实一点也不神奇——利用了Linux系统的内部命令chroot。chroot能将进程的根目录设置成任意指定的目录。使用chroot我们能创建一个新的进程,并且以chroot执行时传入的参数作为新进程的根目录。因为新进程创建之后就无法访问除了新进程创建时传入chroot参数之外的其他文件目录,为了确保这...
- OpenMP 和 NUMA架构OpenMP是一个基于共享内存的并发编程模型。在程序中加入了OpenMP引导语后,主线程会生成一系列的子线程,并将任务划分给子线程进行执行。这里需要强调的是,所有的线程在同一个地址空间内运行,每个线程有独立的栈和程序计数器,但是所有线程共享进程的堆、数据段、代码段等内存空间。NUMA架构全称non-uniform memory achitecture,是一种非... OpenMP 和 NUMA架构OpenMP是一个基于共享内存的并发编程模型。在程序中加入了OpenMP引导语后,主线程会生成一系列的子线程,并将任务划分给子线程进行执行。这里需要强调的是,所有的线程在同一个地址空间内运行,每个线程有独立的栈和程序计数器,但是所有线程共享进程的堆、数据段、代码段等内存空间。NUMA架构全称non-uniform memory achitecture,是一种非...
- 目录前言正文前言Golang语言中有一个其他语言都没有的秘密武器——Goroutine,也就是协程。 正文协程是Golang语言中特有的名词,他不同于进程Process和线程Thread。Golang语言中的Goroutine协程与线程类似,属于一种轻量的线程,但是它的创建成本非常小,比起创建线程来更加方便。我们一般使用Goroutine是执行某一个特定的任务,分工更加明确。说了这么多,那么... 目录前言正文前言Golang语言中有一个其他语言都没有的秘密武器——Goroutine,也就是协程。 正文协程是Golang语言中特有的名词,他不同于进程Process和线程Thread。Golang语言中的Goroutine协程与线程类似,属于一种轻量的线程,但是它的创建成本非常小,比起创建线程来更加方便。我们一般使用Goroutine是执行某一个特定的任务,分工更加明确。说了这么多,那么...
- Linux线程里还支持一个围栏机制--也就是屏障功能。这个围栏机制,可以设置等待的线程数量,当指定数量的线程都到齐之后再全部唤醒—放行。它的的功能和它的名字是匹配的,就是围栏,就像在赛跑比赛场上,要进行比赛时,必须等待所有运动员都到齐全了,都到起跑线上了,然后一声令下,大家再一起跑出去。 Linux线程里还支持一个围栏机制--也就是屏障功能。这个围栏机制,可以设置等待的线程数量,当指定数量的线程都到齐之后再全部唤醒—放行。它的的功能和它的名字是匹配的,就是围栏,就像在赛跑比赛场上,要进行比赛时,必须等待所有运动员都到齐全了,都到起跑线上了,然后一声令下,大家再一起跑出去。
- 信号量的运用环境与互斥锁一样,但是信号量比互斥锁增加灵活,互斥锁只有两个状态(开锁和解锁),而信号量本质上是一个计数器,它内部有一个变量计数信号值,可以保护一个资源可以同时被1个或者2个或者3个线程同时使用,如果信号量的值只是设置1(状态只有0和1),那么和互斥锁就是一样的功能。 信号量的运用环境与互斥锁一样,但是信号量比互斥锁增加灵活,互斥锁只有两个状态(开锁和解锁),而信号量本质上是一个计数器,它内部有一个变量计数信号值,可以保护一个资源可以同时被1个或者2个或者3个线程同时使用,如果信号量的值只是设置1(状态只有0和1),那么和互斥锁就是一样的功能。
- 一、实验内容:选择一个调度算法,实现处理器调度。二、实验目的:在采用多道程序设计的系统中,往往有若干个进程同时处于就绪状态。当就绪进程个数大于处理器数时,就必须依照某种策略来决定哪些进程优先占用处理器。本实习模拟在单处理器情况下的处理器调度,帮助学生加深了解处理器调度的工作。实验题目:设计一个按优先数调度算法实现处理器调度的程序。[提示]:(1) 假定系统有五个进程,每一个进程用一个进程控制... 一、实验内容:选择一个调度算法,实现处理器调度。二、实验目的:在采用多道程序设计的系统中,往往有若干个进程同时处于就绪状态。当就绪进程个数大于处理器数时,就必须依照某种策略来决定哪些进程优先占用处理器。本实习模拟在单处理器情况下的处理器调度,帮助学生加深了解处理器调度的工作。实验题目:设计一个按优先数调度算法实现处理器调度的程序。[提示]:(1) 假定系统有五个进程,每一个进程用一个进程控制...
- 本篇介绍C++多线程编程的一些知识。 本篇介绍C++多线程编程的一些知识。
- 读写锁与互斥锁类似,读写锁比互斥锁有更高的并行性,这篇文章就介绍Linux线程里读写锁的使用方法。 读写锁与互斥锁类似,读写锁比互斥锁有更高的并行性,这篇文章就介绍Linux线程里读写锁的使用方法。
- 简单基于 SpringBoot,使用拦截器及自定义日志演示一个简单的单体服务流量标记方案。如果接口内部存在多线程异步调用,这时用上面提供的方案的流量标记还会有效吗?如果不能实现真实的链路传递,那么又该如何实现呢? 简单基于 SpringBoot,使用拦截器及自定义日志演示一个简单的单体服务流量标记方案。如果接口内部存在多线程异步调用,这时用上面提供的方案的流量标记还会有效吗?如果不能实现真实的链路传递,那么又该如何实现呢?
- 前面文章介绍了Linux下进程的创建、管理、使用、通信,了解了多进程并发;这篇文章介绍Linux下线程的基本使用,介绍线程相关的接口函数与使用方法。 前面文章介绍了Linux下进程的创建、管理、使用、通信,了解了多进程并发;这篇文章介绍Linux下线程的基本使用,介绍线程相关的接口函数与使用方法。
上滑加载中
推荐直播
-
华为云IoT开源专家实践分享:开源让物联网平台更开放、易用
2024/05/14 周二 16:30-18:00
张俭 华为云IoT DTSE技术布道师
作为开发者的你是否也想加入开源社区?本期物联网平台资深“程序猿”,开源专家张俭,为你揭秘华为云IoT如何借助开源构建可靠、开放、易用的物联网平台,并手把手教你玩转开源社区!
去报名 -
华为云开发者日·广州站
2024/05/15 周三 14:30-17:30
华为云专家团
华为云开发者日HDC.Cloud Day是面向全球开发者的旗舰活动,汇聚来自千行百业、高校及科研院所的开发人员。致力于打造开发者专属的技术盛宴,全方位服务与赋能开发者围绕华为云生态“知、学、用、创、商”的成长路径。通过前沿的技术分享、场景化的动手体验、优秀的应用创新推介,为开发者提供沉浸式学习与交流平台。开放创新,与开发者共创、共享、共赢未来。
去报名 -
企业级数仓迁移工具助您轻松上云
2024/05/21 周二 16:30-18:00
Nick 华为云数仓GaussDB(DWS)研发专家
随着云时代的到来,传统数仓已无法满足企业的需求,越来越多的企业选择从传统数仓迁移到云数据仓库,云数仓为企业提供了更低的成本、更灵活极致的体验。本期直播将为您带来企业级数仓搬迁的解决方案,带您一览华为云数仓GaussDB(DWS)提供了哪些迁移方案助力用户实现数据迁移,如何保障迁移后数据的一致性。
去报名
热门标签