操作系统
文章平均质量分 85
Linux,全称GNU/Linux,是一种免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年10月5日首次发布,它主要受到Minix和Unix思想的启发,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的Unix工具软件、应用程序
呆萌宝儿姐
CSDN专家博主、阿里云开发者社区专家博主、51CTO社区专家博主、360书馆认证博主、知乎掘金B站等平台受邀作者。
如遇开发、程序等需求,博客首页下拉加入公众号,私信博主
展开
-
深度解析Linux时钟同步问题及解决方案
在分布式系统中,时间同步是一个至关重要的问题。准确的时间戳不仅是日志记录和故障排除的基础,也是许多分布式算法的核心要求。本文将深入探讨Linux系统中的时钟同步问题,详细介绍常见的时钟同步服务及其配置方法,并结合实际案例,提供解决时钟同步问题的完整方案。原创 2024-07-29 19:55:16 · 742 阅读 · 0 评论 -
死锁产生的条件及其预防
破坏“不可剥夺”条件:一个进程不能获得所需要的全部资源时便处于等待状态,等待期间他占有的资源将被隐式的释放重新加入到 系统的资源列表中,可以被其他的进程使用,而等待的进程只有重新获得自己原有的资源以及新申请的资源才可以重新启动,执行。破坏“循环等待”条件:采用资源有序分配其基本思想是将系统中的所有资源顺序编号,将紧缺的,稀少的采用较大的编号,在申请资源时必须按照编号的顺序进行,一个进程只有获得较小编号的进程才能申请较大编号的进程。,Pn},其中P1等待P2所占有的某一资源,P2等待P3所占有的某一源,…原创 2022-09-04 15:21:23 · 1854 阅读 · 0 评论 -
操作系统:进程与线程大解析
有名管道不同于匿名管道之处在于它提供了一个路径名与之关联,以有名管道的文件形式存在于文件系统中,这样,即使与有名管道的创建进程不存在亲缘关系的进程,只要可以访问该路径,就能够彼此通过有名管道相互通信,因此,通过有名管道不相关的进程也能交换数据。锁也是用的这种原理实现的。现在我们考虑一个场景:有一个会读取硬盘文件数据的程序被执行了,那么当运行到读取文件的指令时,就会去从硬盘读取数据,但是硬盘的读写速度是非常慢的,那么在这个时候,如果 CPU 傻傻的等硬盘返回数据的话,那 CPU 的利用率是非常低的。原创 2022-11-13 17:18:54 · 3492 阅读 · 1 评论 -
操作系统:Linux vs Windows内核与应用对比
内核是操作系统最基本的部分。它是为众多应用程序提供对计算机硬件的安全访问的一部分软件,这种访问是有限的,并且内核决定一个程序在什么时候对某部分硬件操作多长时间。内核的分类可分为单内核和双内核以及微内核。严格地说,内核并不是计算机系统中必要的组成部分。因为计算机是由各种外部硬件设备组成的,比如内存、cpu、硬盘等,如果每个应用都要和这些硬件设备对接通信协议,那这样太累了,所以这个中间人就由内核来负责,让内核作为应用连接硬件设备的桥梁,应用程序只需关心与内核交互,不用关心硬件的细节。原创 2022-11-13 09:42:41 · 2679 阅读 · 0 评论 -
操作系统:死锁资源的计算
死锁资源计算:系统内有n个进程,每个进程都需要R个资源,那么其发生死锁的最大资源数为n*(R-1)。其不发生死锁的最小资源数为n*(R-1)+1。原创 2022-10-16 21:55:06 · 1538 阅读 · 0 评论 -
操作系统:用户态与内核态
操作系统的核心是内核(kernel),它独立于普通的应用程序,可以访问受保护的内存空间,也有访问底层硬件设备的所有权限。外围设备发出中断信号,当中断发生后,当前运行的进程暂停运行,并由操作系统内核对中断进程处理,如果中断之前CPU执行的是用户态程序,就相当于从用户态向内核态的切换。用户态就是提供应用程序运行的空间,为了使应用程序访问到内核管理的资源例如CPU,内存,I/O。由于用户态无法完成某些任务,用户态会请求切换到内核态,内核态通过为用户专门开放的中断完成切换。内核态其实从本质上说就是内核,它是一种。原创 2022-09-25 13:54:01 · 1833 阅读 · 0 评论 -
C语言实现的操作系统银行家算法
文章目录一、银行家算法二、方案分析三、开发环境四、设计思想及实验步骤4.1 设计思想4.2 银行家算法中的数据结构4.3 银行家算法bank()4.4 安全性算法safe()五、程序的基本结构框图和流程图5.1 程序结构功能图5.2 流程图六、源代码一、银行家算法银行家算法(Banker’s Algorithm)是一个避免死锁(Deadlock)的著名算法,是由艾兹格·迪杰斯特拉在1965年为T.H.E系统设计的一种避免死锁产生的算法。它以银行借贷系统的分配策略为基础,判断并保证系统的安全运行。 在原创 2021-12-19 20:04:56 · 11596 阅读 · 3 评论 -
C++实现进程调度模拟程序——哲学家进餐问题
文章目录一、开发环境二、进餐问题三、系统分析四、程序流程图五、源代码一、开发环境开发平台: Visual C++6.0开发环境: Windows XP开发语言: C语言+API(windows应用程序编程接口)二、进餐问题一个圆桌上有一大碗面,5个盘子,5把筷子,5个座位上可以座5个哲学家,当哲学家就坐以后,其左右有且仅有一个筷子,每个筷子左又有且仅有一个哲学家。哲学家动作:思考,取筷(需要两个),取面,吃面。现设计一个礼仪以允许他们就餐,需要避免两个哲学家“抢”同一把筷子,又要避免饥饿和死锁。原创 2021-12-20 09:19:43 · 6909 阅读 · 0 评论