操作系统概述

OS基本概念

对用户和程序猿提供接口

  • 命令接口
  • 联机命令接口(交互式命令接口) 向计算机输入一条指令,它会先解析命令然后执行这条指令,完成后可在输入下一条指令。这种操作的好处在于人机交互性强。比如:你安排一件事他做一件。
  • 脱机命令接口(批处理命令接口)
    向计算机输入多条指令,他会按照某种你给的逻辑顺序执行指令,直到全部指令执行结束。在执行指令的过程中不能干预计算机。比如:你给他一堆事,他做完了找你汇报结果。
  • 程序接口

专门为程序员提供的一套接口,由一组系统调用(广义指令)组成,程序员通过程序调用,请求操作系统提供服务。比如:C语言中的打印函数 printf,这个函数在底层实现的时候,就是操作系统通过系统调用支配显示器,把你要打印的输出到显示器上。

对硬件功能扩展

这个就不说了吧,没有操作系统裸机功能特别的底下,所以操作系统是对硬件功能的扩展

对系统资源的管理

操作系统对系统资源的管理主要有以下四个方面,这四个方面也是学习操作系统的主要内容 + 处理机管理 对处理机管理最基本的单位是进程或者线程的管理,这一方面主要在第二章去学习。 + 存储管理 存储管理是为了给多道程序运行提供存储环境,提高内存的利用率。主要包括内存分配与回收、地址映射、内存保护与共享、内存扩充等。这一方面主要在第三章去学习。 + 文件管理 计算机中的信息主要都是以文件的方式存储,对文件的管理主要包括对文件存储空间的管理、目录管理、文件读写管理与保护。这一方便在第四章去学习。 + 设备管理 提高设备利用率,包括缓存管理、设备分配、设备处理、虚拟设备等等,这一方面在第五章去学习。

OS的发展与特征

发展

批处理操作系统

单道批处理

将一组程序一条一条的给处理机,处理机一条一条的执行。具有顺序性、自动性。但是CPU运行的速度非常快,而当一条指令在读取信息与输出信息的情况下,CPU处于空闲状态,这是一种资源浪费。为了解决这一问题,出现了多道批处理系统。

多道批处理

允许多个程序同时进入内存,并且允许他们在CPU上交替执行(宏观上程序是并行的,微观上程序是串行的)。这种方式CPU资源利用率调高了很多,但是用户响应时间长,不支持人机交互。 放图理解

分时操作系统

把CPU的运行时间划分成很小的时间片,按照时间间隔轮流执行各个程序,如果一个时间片的时间到了以后,程序没有执行完成,那么也不执行了。等待下一次时间片到来继续执行。相当于多个用户使用一台主机设备。分时操作系统具有:同时性、交互性、独立性、及时性。分时操作系统不仅解决了CPU利用率的问题还解决了人机交互问题,但是分时操作系统不能够优先处理紧急的任务。 拓展:分时操作系统其实使用了时分复用技术,(百度百科:时分复用技术(time-division multiplexing, TDM)是将不同的信号相互交织在不同的时间段内,沿着同一个信道传输;在接收端再用某种方法,将各个时间段内的信号提取出来还原成原始信号的通信技术。这种技术可以在同一个信道上传输多路信号。)说实话看了几遍大致理解了,举个例子一个厕所供10个人使用,每个人用5分钟,那么先让第一个人用一分钟,以此类推,第11分钟再让的一个人使用一分钟等五十分钟过去了,就运行结束,增加了用户的体验性,不用等那么久。

实时操作系统

为了解决分时操作系统不能优先解决紧急的问题,出现了实时操作系统。遇到某个紧急情况的时候,不需要按时间片选排队,直接执行该程序。既有及时性与可靠性。 + 硬实时操作系统:在规定的时间内必须执行完某段程序,如果执行不完,会造成严重的后果。比如:导弹系统 + 软实时操作系统:能够偶偶的超时完成程序不会造成太大的影响。

网络和分布操作系统

这个暂时不懂

特征

并发

  • 定义:

    • 并发:两个或者多个事件在同一时间间隔内发生。
    • 并行:两个或者多个事件在同一时刻内发生
  • 并发行是指计算机系统中同时存在多个程序,比如你先吃饭,然后看电视;并行性是指计算机系统又有同时处理多个事件的能力,比如你边看电视边吃饭。

共享

  • 定义:共享是指系统中资源可以供多个并发执行的程序使用。比如打印机设备
  • 互斥共享:在一段时间内只允许一个进程访问资源
  • 同时访问:可同是允许多个进程使用资源

虚拟

  • 虚拟的本质就是把物理的实体转换成逻辑上的对应物
  • 时分复用技术:把处理器的执行时间换成多个时间片,每个时间片内执行一个进程,片选时间到了,不管进程是否执行完毕,都去下一个进程。循环执行。
  • 空分复用技术:把内存划分成多个存储区域(C、D、E、F盘面)

异步

  • 多道程序环境允许多个程序并发进行,但由于资源有限并不是一贯到底的,而是一个进程走走停停,以不可预知的速度向前执行。
  • 简单理解就是一个进程,要运行多次才能允许完毕,得到结果。

四者关系

  • 并发与共享是操作系统最基本的特征,二者互为条件存在。
  • 资源共享是以程序的程序的并发为条件,程序不允许并发就不会存在资源共享。
  • 如果系统不能够对资源进行有效的管理,则一定会影响程序的程序的并发

OS的运行机制

机制的组成

  • CPU的两种状态:内核态(核心态)、用户态(管态)
  • 两个程序:内核程序、应用程序
  • 两种指令:特权指令、非特权指令

机制之间的关系

  • 内核态是用户态的管理者
  • 内核态下运行内核程序,用户态下运行于程序
  • 内核态下和内核程序中都可以执行特权指令
  • 内核程序可以通过特权指令管理应用程序

CPU什么时候转变状态

  • 系统调用:这是用户进程主动要求切换到内核态的一种方式,用户进程通过系统调用申请操作系统提供的服务程序完成工作。
  • 异常:这是用户进程主动要求切换到内核态的一种方式,用户进程通过系统调用申请操作系统提供的服务程序完成工作。
  • 外围设备中断请求:当外围设备完成用户请求的操作之后,会向CPU发出相应的中断信号,这时CPU会暂停执行下一条将要执行的指令

中断和异常

作用

  • 中断:也称为外中断,来自CPU执行指令意外发生的事情。
  • 异常:称为内中断,来自CPU执行指令内部的事件

区别

  • 中断

    • 外中断(强迫中断)

      • 外设请求
      • 人的干预
    • 内中断
      • 自愿中断

        • 指令中断
      • 强迫中断
        • 硬件故障
        • 软件故障

如何处理中断与异常

  • 硬件完成

    • 关中断
    • 保存断点
    • 引出中断服务程序
  • 中断程序完成
    • 保存现场和屏蔽字
    • 开中断
    • 执行中断服务程序
    • 关中断
    • 恢复现场与屏蔽字
  • 硬件完成
    • 开中断
    • 中断恢复

系统调用

概念

  • 是指用户在程序中调用操作系统所提供的一些子功能,可以视为特殊的公共子程序。

操作系统提供系统调用命令分类

  • 设备管理:完成设备的请求或者释放,以及设备启动等功能
  • 文件管理:完成文件的读、写、创建、删除
  • 进程控制:进程的创建、撤销 、阻塞、唤醒
  • 进程通信:完成进程之间的消息传递
  • 内存管理:内存的分配、回收等

过程

  • 用户态,用户的进程执行
  • 用户态,请求使用系统调用
  • 内核态,执行系统调用
  • 返回给用户态

OS体系结构

大内核

  • 组成

    • 用户态:应用程序
    • 内核态:1、进程管理;2、存储管理;3、设备管理 |1、时钟管理;2、中断管理;3、原语
  • 优点:高性能,因为很多东西都在内核态完成,不需要在内核态与用户态之间频繁的转换
  • 缺点:结构混乱、难以维护

微内核

  • 组成

    • 用户态:应用程序|1、进程管理;2、存储管理;3、设备管理
    • 内核态:1、时钟管理;2、中断管理;3、原语
  • 优点:结构简单,容易维护
  • 缺点:性能低

一个封锁操作被对 wsacancelblockingcall 的调用中断_操作系统概论相关推荐

  1. WSAGetLastError:10004 一个封锁操作被对 WSACancelBlockingCall的调用中断 的解决

    今天在进行网络通信调试的时候遇到一个错误:10004 一个封锁操作被对 WSACancelBlockingCall的调用中断. 错误的发生情况如下: Server: 1. 一个线程启动一个socket ...

  2. [Socket网络编程]一个封锁操作被对 WSACancelBlockingCall 的调用中断。

    原文地址:http://www.cnblogs.com/xiwang/archive/2012/10/25/2740114.html记录在此,方便查阅. C#中在使用UDPClient循环监听端口,在 ...

  3. 一个封锁操作被对wsacancelblockingcall_跳票也传染?育碧看家游戏孤岛惊魂6彩虹六号 封锁宣布延迟发售...

    近日本来是满怀期待的等待<赛博朋克2077>的发售的玩家们可能会有些失望了.在<赛博朋克2077>宣布将会跳票到12月份发售,但是显然玩家们还是不太买账的.先是<赛博朋克 ...

  4. Boost:异步操作,涉及重新打包多个操作,但选择仅调用其中一个的测试程序

    Boost:异步操作,涉及重新打包多个操作,但选择仅调用其中一个的测试程序 实现功能 C++实现代码 实现功能 boost::asio模块,异步操作,涉及重新打包多个操作,但选择仅调用其中一个的测试程 ...

  5. java怎样中断函数_Java中断一个线程操作示例

    本文实例讲述了Java中断一个线程操作.分享给大家供大家参考,具体如下: 一 点睛 中断一个线程,意味着该线程在完成任务之前,停止它正在进行的一切当前的操作. 有三个比较常用的函数: interrup ...

  6. 自己动手写一个能操作redis的客户端

    作者:孤独烟 来自:http://rjzheng.cnblogs.com/ 引言 redis大家在项目中经常会使用到.官网也提供了多语言的客户端供大家操作redis,如下图所示 但是,大家有思考过,这 ...

  7. Java黑皮书课后题第7章:7.15(消除重复)使用下面的方法头编写方法,消除数组中重复出现的值。编写一个测试程序,读取10个数,调用该方法,并显示以一个空格分隔的不同数字

    7.15(消除重复)使用下面的方法头编写方法,消除数组中重复出现的值.编写一个测试程序,读取10个数,调用该方法,并显示以一个空格分隔的不同数字 题目 题目描述与运行示例 破题 代码 21.11.11 ...

  8. Java黑皮书课后题第6章:6.37(格式化整数)编写一个测试程序,提示用户输入一个数字以及宽度,显示通过调用format方法返回的字符串

    6.37(格式化整数)编写一个测试程序,提示用户输入一个数字以及宽度,显示通过调用format方法返回的字符串 题目 题目描述 破题 代码 运行示例 题目 题目描述 6.37(格式化整数) 使用下面的 ...

  9. java 8 list,JAVA8 ListListInteger list中再装一个list转成一个list操作

    我就废话不多说了,大家还是直接看代码吧~ List collect = IntStream.range(1, 10).boxed().collect(Collectors.toList()); Lis ...

最新文章

  1. C# WinForm开发系列 - WebBrowser
  2. 交错级数如何判断收敛_从微分方程的级数解到两个特殊方程(1):关于平凡点的解...
  3. open source protocols
  4. 剑指offer之合并已排序链表(递归实现)
  5. web浏览器_Web上的分享(Share)API
  6. 如何调整标题字体大小_软网推荐:找回调整Windows 10字号功能
  7. 用python庆祝生日_奶茶妹妹章泽天欢度27岁生日,甜蜜微笑庆生,美到登热搜第一...
  8. python字符串查找的四种方法_Python中的字符串查找操作方法总结
  9. 国庆长假前不妨先来做完这份 JavaScript 测验吧!因为......
  10. 二叉搜索树,和红黑树,
  11. 基于FPGA的简易DDS信号发生器的设计与验证
  12. js 浅拷贝(浅复制、浅克隆)、深拷贝(深复制、深克隆)
  13. 高仿大漠找字FindStr
  14. 图像相似度对比分析软件,图像相似度算法有哪些
  15. 免费和低成本开发人员工具和资源的终极清单
  16. APP指的是智能手机的第三方应用
  17. UE4像素流(Pixel Streaming)应用场景演示和分析
  18. java并发编程第二课 线程锁和线程安全
  19. 基于JAVA后台微信买菜小程序系统 开题报告
  20. 电脑重装系统mysql_重装系统后 mysql怎么办?

热门文章

  1. 4.Eclipse的安装和使用
  2. 0x00000000 处有未经处理的异常: 0xC0000005: 在位置 0x0000000000000000 发生访问冲突
  3. 【深度学习】网络中隐含层神经元节点的个数(需要学习的特征数目)
  4. Android中minSdkVersion、targetSdkVersion、maxSdkVersion的作用
  5. Android 学习指南(2017版)
  6. 程序员面试题精选100题(33)-在O(1)时间删除链表结点[数据结构]
  7. 关于知识整理、积累与记忆
  8. 浅谈线程池(中):独立线程池的作用及IO线程池
  9. ElementUI的组件拆解之Tooltip
  10. 个人申请并部署阿里云免费Symantec SSL过程浅谈