操作系统构建过程

操作系统核心管理CPU,通过PC指针实现程序执行。为解决CPU利用率低,引入多进程概念,利用PCB和内存管理解决内存冲突。多线程进一步优化,通过共享内存和线程同步机制解决数据冲突。操作系统通过时间片分配和CPU调度算法确保资源合理分配和高效执行。
摘要由CSDN通过智能技术生成

操作系统核心要管理CPU-------怎么管理CPU?给PC指针设置初值让它不断的取值执行。
问题来了:顺序执行会遇到CPU长时间等待,CPU利用率低下。
于是想到再等待资源的时候让它去执行别的程序-------多个程序交替执行,这就是多进程。执行别的程序就是跳转,那就需要一个栈---------------跳出去要能跳回来,引出PCB记录当前执行状态,跑起来发现会有内存冲突(比如A把B程序的内存修改了B在执行的时候崩了)--------于是要内存管理,不让程序直接接触到物理内存,但是又给他提供内存(内存映射),于是一个进程基本要有PCB,进程栈,内存映射表。
问题来了: 这么做导致两个相互联系很紧密的程序间切换很麻烦,于是想到只切换栈和当前运行状态**(这便是多线程,程序段共用一个内存映射表,但是各有自己的栈空间和记录自己执行状态的数据结构TCP**),多线程创建的初衷就是为了让多个线程合作完成某些任务,在合作的时候就会有数据冲突,于是引出共享数据保护、原子操作、锁头等方法。
多线程跑起来了但是某一个线程一进入内核如果被CPU挂起了,别的线程永远也不会执行,于是想到让线程在内核被挂起了也能完成切换,也就是内核级线程。要在内核完成切换,就要准备一个内核栈,把它和TCB以及用户栈关联起来,从两个栈之间的切换变道两套栈之间的切换这就可以在内核完成切换了。
现在内存中又大量程序在交替执行,如何给他们合理的分配资源?
为了每个线程都能执行,就要为他们分配时间片,时间片用完就把它挂起一

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值