结构

操作系统内核特征:并发、共享、虚拟、异步、持久
分层结构、微内核结构、外核结构、虚拟机管理器

中断及系统调用

内存管理

进程和线程

进程

运行中的程序,记录程序运行状态
一个进程是一个具有一定独立功能的程序在一个数据集合上的一次动态执行过程。操作系统中的进程管理需要采用某种调度策略将处理器资源分配给程序并在适当的时候回收,并且要尽可能充分利用处理器的硬件资源。

进程控制块(PCB,Process Control Block)

OS管理进程运行所用的信息集合,进程存在的唯一标示。包括:

  1. 进程标识信息
  2. 处理机现场保存
  3. 进程控制信息

进程控制信息包括:

  1. 调度和状态信息
  2. 进程间通信信息
  3. 存储管理信息
  4. 进程所用资源
  5. 有关数据结构连接信息

进程控制块的组织

链表、索引表

进程状态

  1. 创建:系统初始化;用户请求创建一个新进程;正在运行的进程执行了创建进程的系统调用
  2. 执行
  3. 等待
  4. 抢占
  5. 唤醒
  6. 结束

三状态进程模型

  1. 运行状态
  2. 就绪状态
  3. 等待状态

进程挂起模型

处在挂起状态的进程映射在磁盘上,目的是减少进程内存占用

进程控制

进程切换

上下文切换

进程生命周期信息:
寄存器(PC,SP…)
CPU状态
内存地址空间

进程控制块PCB:内核的进程状态记录

  1. 内核为每个进程维护了对应的进程控制块
  2. 内核将相同状态的进程PCB放置在同一队列(就绪队列、IO等待队列、僵尸队列)

进程创建

Windows:CreateProcess
Unix:fork/exec

fork创建一个继承的子进程:
复制父进程的所有变量和内存
复制父进程的所有CPU寄存器(有一个寄存器除外)

fork的返回值:
子进程返回0
父进程返回子进程标识符
返回值可方便后续使用,子进程可使用getpid获取PID

进程加载

exec

进程等待和退出

wait调用父进程等待子进程的结束
exit进程结束调用,完成进程资源回收

其他

nice指定进程初始优先级,unix系统中进程优先级会随执行时间而衰减
ptrace允许一个进程控制另一个进程的执行,调试设置断点和查看寄存器
sleep进程在定时器的等待队列中等待指定

线程

多进程存在通信共享数据问题,系统开销问题

线程是进程的一部分,描述指令流执行状态。它是进城中的指令执行流的最小单元,是CPU调度的基本单位。
线程 = 进程 - 共享资源

优点:一个进程中可以同时存在多个线程;各个线程之间可以并发地执行;各个线程之间可以共享地址空间和文件资源。
缺点:一个线程奔溃,会导致其所属进程的所有线程崩溃。

进程是资源分配单元,线程是CPU调度单元;
进程拥有一个完整的资源平台,而线程只独享指令流执行的必要资源,如寄存器和栈;
线程具有执行、等待和运行三种基本状态和状态间的转换关系;
线程能减少并发执行的时间和空间开销;

线程的实现

用户线程

优点:
不依赖操作系统的内核
在用户空间实现的线程机制
同一进程内的用户线程切换速度快
允许每个进程拥有自己的调度算法

缺点:
线程发起系统调用而阻塞时,则整个进程进入等待
不支持基于线程的处理机抢占
线程只能按进程分配CPU时间

内核线程

优点:
由内核维护PCB和TCB
线程执行系统调用而被阻塞不影响其他线程
以线程为单位进行CPU时间分配
缺点:
线程的创建、终止和切换消耗相对较大

轻权进程LightWeight Process

内核支持的用户线程。一个进程可以有一个或多个轻量级进程,每个轻权进程由一个单独的内核线程来支持。

处理机调度

基本概念

处理机调度

从就绪队列中挑选下一个占用CPU运行的进程
从多个可用CPU中挑选就绪进程可使用的CPU资源

调度时机

非抢占系统
可抢占系统 :时间片用完、进程从等待切换到就绪

调度准则

调度策略

确定如何从就绪队列选择下一个执行进程

调度算法

先来先服务算法FCFS:

进入就绪状态的先后顺序排序
优点:简单
缺点:平均等待时间波动较大;IO资源和CPU资源的利用率低

短进程优先算法SPN

选择就绪队列中预期执行时间最短进程占用CPU进入运行状态
优点:具有最优平均周转时间
缺点:可能导致饥饿,需要预知未来(询问用户)

短剩余时间优先SRT

最高响应比优先算法HRRN Highest Response Ratio Next

选择就绪队列中响应比R值最高的进程
R = (w + s)/s;

在短进程优先算法的基础上改进
不可抢占
关注进程等待时间
防止无限期推迟

时间片轮转算法RR Round Robin

额外的上下文切换
时间片设置(经验规则10ms,维持上下文切换开销处于1%以内)

多级反馈队列算法MFQ

多级队列
就绪队列被划分成多个独立的子队列
每个队列拥有自己的调度策略
队列间的调度

进程可以在不同队列间移动的多级队列算法

公平共享调度算法FSS

实时调度

多处理器调度

优先级反转

处理机调度

同步互斥

文件系统

I/O子系统

【计算机基础】操作系统相关推荐

  1. 计算机基础——操作系统

    作者简介:一名云计算网络运维人员.每天分享网络与运维的技术与干货.   座右铭:低头赶路,敬事如仪 个人主页:网络豆的主页​​​​​​ 目录 前言 一.操作系统 1.操作系统简介 2.操作系统的主要功 ...

  2. 计算机基础——操作系统篇概览

    操作系统 1.os基础 操作系统基本概念:运行在计算机上的一种程序,管理计算机上的软件和硬件资源,包括进程,内存管理,硬件设备管理等(内核负责). 系统调用:运行在用户态的程序需要调用系统态下的资源, ...

  3. 计算机基础------操作系统

    一.什么是操作系统 1)管理计算机软件和硬件资源的程序,是计算机的基石 2)本质是运行在计算机上的应用程序,运行在你电脑上的所有应用程序都通过操作系统来调用系统内存以及磁盘等等硬件. 3)操作系统屏蔽 ...

  4. 计算机基础--操作系统基础

    学习目标: 操作系统基础 学习背景: 针对面试,对自己以往学习过的操作系统基础知识做一个记录与梳理. 学习内容: 1. 进程与线程的本质区别.以及各自的使用场景. 2. 五种进程状态之间的转换. 3. ...

  5. 快速过一遍计算机基础--操作系统—4.文件管理

    目录 Part 1:文件的逻辑结构 Part 2:文件目录 一.实现文件目录的关键数据结构----文件控制块FCB 二.目录结构 三.对文件控制块FCB的优化-索引结点 Part 3:文件的物理结构( ...

  6. 计算机基础教案(XP操作系统)

    <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /> 计算机基础教案 ...

  7. IT:银行类金融科技岗笔试习题集合—各大行(工商+建设+农业+浦发+招商+平安+人民+邮政银行)计算机信息科技岗笔试集合(包括计算机基础知识+网络+操作系统+数据库系统原理)

    IT:银行类金融科技岗笔试习题集合-各大行(工商+建设+农业+浦发+招商+平安+人民+邮政银行)计算机信息科技岗笔试集合(包括计算机基础知识+网络+操作系统+数据库系统原理) 导读:因为博主后台留言太 ...

  8. 计算机基础知识-操作系统

    1.2 操作系统 用来操作硬件,了解每一个硬件的作用并熟知其物理特性及使用方法(这是一个极其繁琐.庞大的工作). 桌面很占用系统资源 为什么要有操作系统 一般而言,现代计算机系统是一个复杂的系统.如果 ...

  9. 计算机与操作系统基础小结

    计算机基础概念 1946年二月美国,世界上第一台电子计算机ENIAC诞生,似乎从这一年开始世界便逐渐变得不一样了.随着半个世纪的时间,计算机技术蓬勃发展,推动人类进入信息社会. 计算机操作界面: ①图 ...

  10. 计算机基础和操作系统基础知识测试,计算机基础知识和操作系统.doc

    全国计算机等级考试精讲·精解·精练--二级C 第1章 计算机基础知识与操作系统 · PAGE 2· · PAGE 33· 技术资料 共享知识 第1章计算机基础知识与操作系统 大纲要求 了解计算机的有关 ...

最新文章

  1. 【Qt】QWidget对样式表设置边框无效的解决方法
  2. Linq-ToList与ToArray
  3. html tfoot标签,HTML tfoot 标签
  4. 【C++】43.使用【类对象】与 【类指针】的区别
  5. [集训队作业2018] 万圣节的积木(李超线段树)
  6. Spring bean 不被 GC 的真正原因
  7. 【Flink】Flink 1.14 版本 新特性 Barrier 在流经算子做 checkpoint Barrier跳过 unaligned checkpoint
  8. 91年转行前端开发,是不是不该转,有啥风险?
  9. angular的post请求,SpringMVC后台接收不到参数值的解决方案
  10. html响应式布局平移,Canvas 随鼠标平移的响应式画布/魔法奇缘场景
  11. 安卓Android类原生系统官网集合
  12. WebRTC-NACK、Pacer和拥塞控制和FEC
  13. 百利药业IPO过会:扣非后年亏1.5亿 奥博资本是股东
  14. 安科瑞ACTB-6互感器二次侧开路保护装置
  15. python汇率兑换程序_Python中汇率兑换程序的实现,python
  16. Druid加载(load data)HDFS文件数据
  17. 喜茶门店总数超过650家,深圳单城市突破100家店
  18. Google 应用与游戏出海 4 月刊: 带您连线 GDC,赢在发布前!
  19. react项目—单击按钮返回上一页
  20. 搜索引擎免费登录入口

热门文章

  1. 极高水平的电吉他音源 Orange Tree Samples Evolution Stratosphere Kontakt
  2. 浏览器在线或离线状态检测
  3. zzuli 1787: 生化危机 (BFS)
  4. ant-design在 vue 抽屉(drawer)里面嵌套弹出框(modal)出现蒙层遮挡弹框问题
  5. 【听】实验室女孩,热爱到至爱的科学狂人
  6. python argument是什么_Python argument
  7. SeleniumLibrary4.5.0 关键字详解(五)
  8. PHP获取路径和目录方法总结
  9. matlab中elevation函数功能,Matlab的Demcmap的Python等价物(elevation+/appropriate colormap)...
  10. 【考研政治】时政(思维导图)