由浅到深的操作系统学习

初识操作系统

Linux 源码

https://elixir.bootlin.com/linux/v6.0.6/source/Documentation

操作系统和计算机组成原理的基础讲解

https://www.cnblogs.com/cxuanBlog/p/12376364.html

操作系统的学习框架路线

https://www.cnblogs.com/cxuanBlog/p/13320810.html

操作系统发展史

串行处理、简单批处理系统、多道程序批处理系统、多到程序设计的实现、分时系统

操作系统体系结构

简单结构,层次化结构,微内核结构,模块结构,虚拟机

当今世界上最流行的操作系统时Windows操作系统和苹果操作系统,因为具有良好的生态,UNIX操作系统以网络为核心,安装在服务器上。Linux原名GNULinux免费且开源的多用户的安全的操作系统RedhatubuntuFedoraDebian等都是以Linux改版完善来的。

操作系统就是为了屏蔽底层硬件,为用户提供一套统一,简单的可以通过对应的指令控制底层的硬件的软件。

一般使用的基于图形界面的操作系统叫做GUI图形用户接口,而基于文本,命令行的就是shell

在这里插入图片描述

操作系统运行具有两种模式:用户态模式和内核态模式

底层硬件

CPU,多线程和多核芯片,内存,IO设备,总线

内存架构
在这里插入图片描述

处理器执行一条机器指令的过程可以称之为指令循环

指令循环是从取指令循环、解码阶段、执行阶段再次返回到取指令阶段

操作系统的异常

中断,IO设备发生改变,发出的信号触发,异步,总是返回到下一条指令继续执行

陷阱,由程序主动发起的异常,同步,总是返回下一条执行继续执行

故障,由正在执行的指令产生的各种错误引发,有可能是可恢复的,也可能是不可恢复的,同步,可能返回当前指令重新执行,也可能终止当前程序

致命故障,硬件错误引发的不可恢复的错误,同步,终止当前的程序

操作系统模式切换

操作系统分为用户模式内核模式(特权模式)

比如windows系统默认Ring0是内核模式,Ring1是用户模式

区分两种模式的原因就是保护系统资源,避免越权访问,提高系统安全性

在这里插入图片描述

进程

操作系统中最重要的就是进程英文process,进程是对正在运行中程序的一个抽象。CPU正在执行的一个任务,是系统进行资源分配和调度的基本单位

进程的执行就是CPU 会在各个进程之间进行来回切换。

进程的结构

进程 = 用户程序 + 用户数据 + 系统栈 + PCB + 共享区域

进程的创建

1、为新进程分配一个唯一的PID
2、给进程的各组成部分分配地址空间
3、初始化PCB
4、设置正确的连接
5、创建和扩展其他的数据结构

进程控制

1、获取进程ID父ID

2、创建和终止进程,一个进程创建一个子进程的系统调用是fork(),其特点是调用一次,返回两次,在父进程中返回子进程的ID,在子进程中返回0,终止系统调用的命令是exit(),父子进程拥有不同的PID,地址空间隔离,但是文件资源共享

3、装载运行程序,execve()调用一次从不返回

进程的切换

进程的切换是操作系统打断一个正在运行的进程,将处理区分配给另一个进程,让其拥有处理器资源并且开始继续执行的状态转换

当处理器执行程序的用户程序部分时,处于用户模式
处理器执行进程的内核程序或者访问内核资源的时候,处于内核模式
当用户程序调用内核提供的服务时,处理器发生用户模式内核模式的切换
当内核服务完成,返回用户程序的时候,处理器发生内核模式用户模式的切换

在这里插入图片描述

进程的切换伴随着控制流的切换,内存的切换,操作系统模式的切换

进程上下文进行切换的好处

1、保护资源,避免越权访问,提高系统安全性

2、内核程序和用户程序封装在进程上下文中,只需要进行模式的切换,不需要进行进程的切换,减少了系统开销

3、内核程序在内核模式下运行,可以直接访问用户程序和数据,减少了用户程序和内核程序之间的数据传递,提高了进程执行效率

进程的退出

1、根据退出的ID号,在主进程表中找到对应的PCB
2、将退出释放的资源归还给父进程和操作系统
3、若该进程具有子进程,就先退出它的所有子进程,防止子进程脱离控制
4、将进程出队,释放PCB

进程控制块PCB

PCB = 进程标识信息(PID,PPID,UID) + 处理区状态信息(寄存器和栈指针) + 进程控制信息(资源调度,存储,通信)

进程的状态

新建,就绪,运行,阻塞,退出

在这里插入图片描述
七模型状态

当一个进程被交换到磁盘中时,就处于挂起的状态。组合之后就出现了四种可能的状态,就绪态,阻塞态,阻塞挂起,就绪挂起

异常分类

中断,陷阱,故障,致命故障

进程切换的时机:异常发生时候

过程调用和系统调用

1、过程调用是为了模块化程序设计的需要,系统调用是用户程序使用计算机资源和服务的一种方式

2、过程调用是通过指令跳转实现的,系统调用是通过异常陷阱实现的

3、过程的调用始终在一种模式下进行的,不会发生进程的切换和进程状态的切换,系统调用是会引起进程的切换和状态的切换

4、一个进程调用一个过程的时候,始终在用户模式下的,在用户进程调用一个系统调用的话,就会发生模式的切换以及在系统调用返回的时候,会再次进行模式的切换

进程的调度

调度目标分为

面向用户的目标,具有周转时间,响应时间,最后期限,可预测性

面向系统的目标,具有并发度,吞吐率,CPU利用率,公平性,资源平衡

进程调度

长程调度,目标是并发度,决定一个进程是否被允许进入到计算机系统中进行处理,一旦进入,就将该进程添加到短程调度的队列中等待调度

中程调度,和进程的内存管理相关

短程调度(分派程序),精确的决定下一次执行哪一个进程,执行频率最高

短程调度策略

类别决策模式响应时间对进程的影响
FCFS非抢占式短进程和IO密集型不利
轮转时间片用完抢占短进程好公平
SPN最短进程优先非抢占短进程好长进程不利
SRT最短剩余时间到达时抢占长进程不利
HRRN最高响应比优先非抢占平衡
反馈时间片用完抢占不强调IO密集有利

周转时间T = 等待时间w + 服务时间s = 完成时间 - 到达时间

【带权周转时间】归一周转时间T/s = 周转时间 T / 服务时间 s

线程

线程是环境和资源的抽象,是程序执行流的抽象,是操作系统能够进行运算调度的最小单位,包含在进程中,是进程中的实际运作单位

线程的结构 = 线程控制块 + 线程执行栈 + 线程局部存储

线程的实现方式分为两大类即是用户级线程内核级线程

使用范围

1.服务器中的文件管理或通信控制

2.前后台处理

3.异步处理

进程的并发和死锁

信号量SemaphorePV操作

  • P(s)操作,将信号量的是s.count--,如果s.count < 0,则操作系统就把系统调用P(s)的进程置为阻塞态,将其加入到s.queue中,如果s.count >= 0,则P(s)直接退出

  • V(s)操作,s.count++,如果s.count <= 0,就在s.queue中选择并移出一个进程,将他从阻塞态变为就绪态,并加入就绪队列中,然后退出。如果 s.count > 0,则V(s)直接退出

死锁

DeadLock是系统中多个进程并发执行时,由于资源占有和请求引起的一种进程永远被阻塞的状态的现象,就是进程之间持有自己的资源不愿放手,又要请求其他进程的资源满足自己的需要,造成的一种无解的,互相一直僵持的状态。

哲学家就餐问题就是一个典型的死锁问题,5 个哲学家,2把叉子,6个资源就会保证发生死锁

同类资源个数mn个进程互斥使用,每个进程对于该类资源的最大需求量是k,为了保证在任何调度情况下都不会发生死锁的条件 n * ( k - 1) + 1 <= m

资源分配图刻画进程和资源关系

死锁发生的条件,互斥 + 占有且等待 + 不可抢占 + 循环等待,这四个条件组合在一起,同时发生就会造成死锁

死锁的处理

  • 死锁的预防,预分配,顺序分配方法

  • 死锁的避免,银行家算法,每种资源的总量Resource,剩余每种资源的总量Available,进程最大资源需求矩阵Claim,资源分配矩阵Allocate,每个进程还需要请求的资源矩阵 Need = Claim - Allocate

  • 死锁的检测,银行家算法,一旦剩余资无法满足任何一个进程资源的需求就报出出现死锁

死锁的恢复

取消全部死锁的进程,将每一个死锁进程回滚到检查点,连续取消死锁进程,连续抢占资源,直到不再存在死锁

内存

内存管理的四大基本需求,重定向,共享,保护,存储器扩充

虚拟内存

虚拟内存是对进程结构进行内存管理的一个中间数据结构

在这里插入图片描述

虚拟内存是一个由连续字节存储单元构成的数组,而虚拟地址空间是虚拟内存中每一个字节的虚拟地址集合

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: CSDN 王道 408 操作系统是一本针对操作系统课程的教材,它由中国软件开发网(CSDN)出版,并以提供高质量的学习资源为目标。操作系统是计算机科学中的重要课程,也是计算机专业必修的一门课程。 这本教材主要涵盖了操作系统的基本概念、原理和设计,以及常见的操作系统功能和特性。它的内容丰富、出,适合学生的学习和理解。 在这本教材中,读者可以了解到操作系统的基本概念,例如进程管理、内存管理、文件系统等。对于每个主题,教材都提供了清晰而详细的解释,并通过示例和实践案例来帮助读者更好地理解和应用所学知识。 此外,这本教材还包含了大量的习题和实践题,以帮助读者巩固所学知识。这些习题既包括简单的选择题和填空题,也包括更加复杂的应用题和设计题,能够逐步提高读者的操作系统能力。 总的来说,CSDN 王道 408 操作系统是一本优质的教材,它为学习操作系统提供了全面而入的指导。无论是对于计算机专业的学生还是对于对操作系统感兴趣的人来说,这本教材都是值得推荐的参考书。它不仅能够帮助读者掌握操作系统的基本概念和原理,还能够培养读者的问题解决和设计能力,为进一步入研究和实践奠定良好的基础。 ### 回答2: CSDN王道408操作系统是一本针对计算机科学与技术专业的教材,主要讲解操作系统的相关知识和理论。本书内容包含了操作系统的基本概念、进程管理、内存管理、文件系统、输入输出系统等核心内容。 首先,本书从操作系统的基本概念开始介绍。通过对操作系统的定义、功能以及组成部分进行讲解,帮助读者了解操作系统的重要性和作用。 其次,本书详细介绍了进程管理的相关知识。进程是操作系统中的一个关键概念,是程序在计算机中的执行实体。通过对进程的创建、调度、同步与通信等方面的讲解,读者可以入了解操作系统中进程的管理与控制原理。 此外,本书也对操作系统中的内存管理进行了系统的解释。内存管理是操作系统中的重要部分,它负责管理和控制计算机的内存资源。本书详细介绍了内存的分配与回收、虚拟内存、页面置换算法等概念和技术,帮助读者更好地理解和掌握内存管理的原理和方法。 最后,本书还涉及了操作系统中的文件系统和输入输出系统等内容。文件系统是操作系统中负责管理和操作文件的部分,而输入输出系统则涉及到计算机与外部设备的交互。通过对文件系统和输入输出系统的介绍,读者可以了解到操作系统在数据存储和输入输出方面的工作原理和技术。 总之,CSDN王道408操作系统是一本系统全面的操作系统教材,通过对操作系统的各个方面进行详细的介绍,可以帮助读者更入地理解和掌握操作系统的基本原理和工作机制。 ### 回答3: CSDN王道408操作系统是面向计算机专业人员以及对操作系统有兴趣的人们提供的一本专业书籍,它详细介绍了操作系统的原理、设计和实现等内容。 该书的内容主要分为三个部分。第一部分是操作系统的基本概念和原理,包括进程管理、内存管理、文件系统和输入输出等。通过对操作系统的基本概念和原理进行入讲解,读者可以全面理解操作系统的核心功能和工作原理。 第二部分是操作系统的设计和实现,包括处理器调度、死锁和进程同步等。在这一部分,读者可以学习到如何设计和实现一个高效、可靠的操作系统,并掌握一些解决操作系统中常见问题的技术方法。 第三部分是操作系统的实践和应用,主要介绍了实际应用中操作系统的相关技术和案例,如操作系统在分布式系统中的应用、虚拟化技术和云计算等。这些内容使读者能够了解和应用操作系统在实际工作中的应用和意义。 CSDN王道408操作系统以其丰富的内容和度的讲解,成为了许多计算机专业人员以及学习操作系统的人的重要学习资料。通过阅读和学习该书,读者可以全面掌握操作系统的基本原理和技术,提升自己的操作系统技能,为今后的工作和研究提供有力支持。同时,该书也可以帮助读者入了解操作系统的发展和应用趋势,为从事相关工作的人提供了重要的参考和指导。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值