【软考:程序员(01)】如何考得程序员证书?本片知识点:操作系统基本概念、操作系统的分类、进程管理、三态模型、信号量机制、同步与互斥模型

操作系统基本概念

  • 操作系统:

    组织和管理软件、硬件资源以及计算机系统中的工作流程,并控制程序的执行,向用户提供接口。

操作系统的五大部分

  1. 进程管理:进程控制、进程同步、进程通信、进程调度
  2. 文件管理:文件存储空间管理、目录管理、文件的读写管理、存取控制
  3. 存储管理:存储分配与回收、存储保护、地址映射、贮存扩充
  4. 设备管理:对硬件设备管理,对输入输出设备的分配、启动、完成和回收
  5. 作业管理:任务、界面管理,人机交互、图形界面、语音控制、虚拟现实

只有有了操作系统,用户才有了可以交互的界面

操作系统的分类

操作系统
批处理操作系统
分时操作系统
实时操作系统
网络操作系统
分布式操作系统
微机操作系统
嵌入式操作系统

批处理操作系统

  • 单道批:

    一次一个作业入内存,作业由程序、数据、作业说明书组成

  • 多道批:

    一次多个作业入内存,特点:多道、宏观上并行 微观上串行

按照顺序依次处理指令

分时操作系统

把时间进行分割

  • 采用时间片轮转的方式为多个用户提供服务,每个用户感觉独占系统

特点:

  • 多路性、独立性、交互性和及时性

实时操作系统

实时控制系统和实时信息系统

  • 实时控制系统

交互能力要求不高,可靠性要求高

设备两端精准度要求高、延迟性低

  • 实时信息系统

网络操作系统

方便有效共享网络资源,提供服务软件和有关协议的集合

主要的网络操作系统由:Unix、Linux和Windows server系统

分布式操作系统

任意两台计算机可以通过通信交换信息

是网络操作系统系统的更高级形式,具有透明性、可靠性和高性能等特性

微机操作系统

Windows:

  • Microsoft开发的图形用户界面、多任务、多线程操作系统

Linux:

  • 免费使用和自由传播的类Unix操作系统,多用户、多任务、多现场和多CPU的操作系统

嵌入式操作系统

运行在智能芯片环境中

特点:

  • 微型化、可定制、实时性、可靠性、易移植性

用例:微波炉、电视机、冰箱等,运行在智能芯片基础上的设备

进程管理

进程的三态模型

进程管理(处理机管理):

  • 在计算机系统中资源分配和独立运行的基本单位
状态 说明
运行 进程在处理及上运行。 单处理系统,处于运行状态的进程只能是一个。
就绪 进程获得了除处理及意外的一切所需资源,一旦未得到处理机即可运行
等待 也叫等待或睡眠状态,一个进程正在等到某一事件的发生而暂停停止运行

信号量机制

信号量S

  • 整型变量,根据控制对象进行复制

S>=0表示资源可用数

n:n个资源

m:m个进程

n-m = r 范围;如果结果r<0,则表示有|r|个进程程序需要排队等待

死锁

多个进行在运行过程中因争夺资源而造成的一种僵局

  • 当进程处于这种僵持状态时,若无外力作用,它们都将无法再向前推进

同步和互斥

进程通信:

  • 各个进程交换信息的过程

分类:

  • 同步(直接制约)、互斥(申请临界资源简介制约)

同步

当同时有多个进程需要执行任务,这就会产生执行任务时间不同步

  • 先抵达处理器的进程任务经过等待其他线程任务来到处理器执行
  • 这样就可以多个任务一同进入处理器

互斥

当同时有多个进程需要执行任务,这就会产生,进程之间没有进行同步操作

  • 彼此进程之间不会相互等待

申请释放

P:申请一个资源

V:释放一个资源

S:信号数量(S并不是一个具体含义)

每次执行P或V操作都会进行对应的S-1和S+1操作;

  • 只有符合对应判断标准才会阻塞进入进程队列

互斥模型

多进程共享一台打印机

P(S):使用打印机

V(S):执行后续代码

互斥信号量S的初始值为1

打印机一次只能执行一个进程

  • P和V操作是配套的

流程:

  1. 进程A首先申请处理资源
  2. 若申请处理资源成功,则直接进入处理
  3. 申请处理资源不成功,将任务放入阻塞队列进行等待,跟随队列执行顺序进入处理

同步模型

单缓冲区生产者、消费者问题

💕👉博客专栏

相关推荐
程序员老刘6 小时前
百度裁员N+3.5,程序员如何建立第二曲线
程序员·客户端·投资
文心快码BaiduComate7 小时前
我用文心快码Spec 模式搓了个“pre作弊器”,妈妈再也不用担心我开会忘词了(附源码)
前端·后端·程序员
程序员鱼皮10 小时前
什么是负载均衡?不就是加台服务器嘛!
java·后端·计算机·程序员·编程经验
项目经理的浮生绘记10 小时前
敏捷第14讲:提测质量管理——第一版App装机就崩溃,如何设立“冒烟测试”门槛?
程序员·敏捷开发·项目经理·软件质量·测试管理·冒烟测试·bug管理
AI大模型11 小时前
5本值得精读的AI实战书籍,助你从入门到精通大模型工程(附链接)
程序员·llm·agent
陈佬昔没带相机1 天前
从罗永浩 x MiniMax 闫俊杰对谈中,一窥 AI 时代软件公司岗位变化
人工智能·程序员·敏捷开发
舒一笑1 天前
在低配云服务器上实现自动化部署:Drone CI + Gitee Webhook 的轻量级实践
前端·后端·程序员
AI大模型1 天前
小白必看!大模型入门指南
程序员·llm·agent