一个封锁操作被对 wsacancelblockingcall 的调用中断_操作系统概论
操作系统概述
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 的调用中断_操作系统概论相关推荐
- WSAGetLastError:10004 一个封锁操作被对 WSACancelBlockingCall的调用中断 的解决
今天在进行网络通信调试的时候遇到一个错误:10004 一个封锁操作被对 WSACancelBlockingCall的调用中断. 错误的发生情况如下: Server: 1. 一个线程启动一个socket ...
- [Socket网络编程]一个封锁操作被对 WSACancelBlockingCall 的调用中断。
原文地址:http://www.cnblogs.com/xiwang/archive/2012/10/25/2740114.html记录在此,方便查阅. C#中在使用UDPClient循环监听端口,在 ...
- 一个封锁操作被对wsacancelblockingcall_跳票也传染?育碧看家游戏孤岛惊魂6彩虹六号 封锁宣布延迟发售...
近日本来是满怀期待的等待<赛博朋克2077>的发售的玩家们可能会有些失望了.在<赛博朋克2077>宣布将会跳票到12月份发售,但是显然玩家们还是不太买账的.先是<赛博朋克 ...
- Boost:异步操作,涉及重新打包多个操作,但选择仅调用其中一个的测试程序
Boost:异步操作,涉及重新打包多个操作,但选择仅调用其中一个的测试程序 实现功能 C++实现代码 实现功能 boost::asio模块,异步操作,涉及重新打包多个操作,但选择仅调用其中一个的测试程 ...
- java怎样中断函数_Java中断一个线程操作示例
本文实例讲述了Java中断一个线程操作.分享给大家供大家参考,具体如下: 一 点睛 中断一个线程,意味着该线程在完成任务之前,停止它正在进行的一切当前的操作. 有三个比较常用的函数: interrup ...
- 自己动手写一个能操作redis的客户端
作者:孤独烟 来自:http://rjzheng.cnblogs.com/ 引言 redis大家在项目中经常会使用到.官网也提供了多语言的客户端供大家操作redis,如下图所示 但是,大家有思考过,这 ...
- Java黑皮书课后题第7章:7.15(消除重复)使用下面的方法头编写方法,消除数组中重复出现的值。编写一个测试程序,读取10个数,调用该方法,并显示以一个空格分隔的不同数字
7.15(消除重复)使用下面的方法头编写方法,消除数组中重复出现的值.编写一个测试程序,读取10个数,调用该方法,并显示以一个空格分隔的不同数字 题目 题目描述与运行示例 破题 代码 21.11.11 ...
- Java黑皮书课后题第6章:6.37(格式化整数)编写一个测试程序,提示用户输入一个数字以及宽度,显示通过调用format方法返回的字符串
6.37(格式化整数)编写一个测试程序,提示用户输入一个数字以及宽度,显示通过调用format方法返回的字符串 题目 题目描述 破题 代码 运行示例 题目 题目描述 6.37(格式化整数) 使用下面的 ...
- java 8 list,JAVA8 ListListInteger list中再装一个list转成一个list操作
我就废话不多说了,大家还是直接看代码吧~ List collect = IntStream.range(1, 10).boxed().collect(Collectors.toList()); Lis ...
最新文章
- C# WinForm开发系列 - WebBrowser
- 交错级数如何判断收敛_从微分方程的级数解到两个特殊方程(1):关于平凡点的解...
- open source protocols
- 剑指offer之合并已排序链表(递归实现)
- web浏览器_Web上的分享(Share)API
- 如何调整标题字体大小_软网推荐:找回调整Windows 10字号功能
- 用python庆祝生日_奶茶妹妹章泽天欢度27岁生日,甜蜜微笑庆生,美到登热搜第一...
- python字符串查找的四种方法_Python中的字符串查找操作方法总结
- 国庆长假前不妨先来做完这份 JavaScript 测验吧!因为......
- 二叉搜索树,和红黑树,
- 基于FPGA的简易DDS信号发生器的设计与验证
- js 浅拷贝(浅复制、浅克隆)、深拷贝(深复制、深克隆)
- 高仿大漠找字FindStr
- 图像相似度对比分析软件,图像相似度算法有哪些
- 免费和低成本开发人员工具和资源的终极清单
- APP指的是智能手机的第三方应用
- UE4像素流(Pixel Streaming)应用场景演示和分析
- java并发编程第二课 线程锁和线程安全
- 基于JAVA后台微信买菜小程序系统 开题报告
- 电脑重装系统mysql_重装系统后 mysql怎么办?
热门文章
- 4.Eclipse的安装和使用
- 0x00000000 处有未经处理的异常: 0xC0000005: 在位置 0x0000000000000000 发生访问冲突
- 【深度学习】网络中隐含层神经元节点的个数(需要学习的特征数目)
- Android中minSdkVersion、targetSdkVersion、maxSdkVersion的作用
- Android 学习指南(2017版)
- 程序员面试题精选100题(33)-在O(1)时间删除链表结点[数据结构]
- 关于知识整理、积累与记忆
- 浅谈线程池(中):独立线程池的作用及IO线程池
- ElementUI的组件拆解之Tooltip
- 个人申请并部署阿里云免费Symantec SSL过程浅谈