IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> OS---第一章 -> 正文阅读

[大数据]OS---第一章

第一章

操作系统

概念(定义):

	1.负责管理协调软硬件等计算机资源的工作。
    2.为上层用户、应用程序提供简单易用的服务
    3.操作系统是一种系统软件,而不是硬件

功能和目标

	1.资源的管理者:(1)处理机管理	(2)存储器管理	(3)文件管理		(4)设备管理     //目标=>安全、高效
    2.向用户提供服务:(1)命令接口(用户可以直接使用):
        			  联机命令接口 (交互)、脱机(批处理)命令接口(用户说一堆,机器做一堆) //(1)(2)统称为用户接口
    			   (2)程序接口=系统调用(用户间接使用,为程序员提供的):
        			  由一组系统调用组成。系统调用=广义指令						 //目标=>方便使用
        		   (3)GUI用户图形界面
    3.对硬件机器的拓展:扩充机器(虚拟机)												    //目标=>扩展能力	

特征

	1.并发:和并行区分开,操作系统和程序并发是一起诞生的	  //并发和共享互为存在条件	
    2.共享:	互斥共享:摄像头	同时共享:音响		   //并发和共享是最基本两个的特征
    3.虚拟:										//并发为前提
			空分复用技术(虚拟存储技术:可以同时打开很多占内存的应用,他们所占运行内存远大于电脑运行内存)
            时分复用技术(虚拟处理器,比如你4核的,但是你可以同时运行五个应用)
    4.异步:  程序总是走走停停						   //并发为前提

其他

		1.系统软件包括:操作系统、数据库管理系统、语言处理程序、服务性程序、标准库程序。
        2.操作系统管理文件(文件结构、多文件之间的协调,不关心文件内容),但是文件不属于硬件资源,需要计算机资源
        3.源程序直接面向程序员的,而不是操作系统的管理内容
        4.命令接口:命令解释器、shell命令解析器
        5.操作系统不提供管理系统缓存的系统调用,操作系统的程序会被加载到RAM
        6.顺序性是程序设计的基本特征

操作系统的发展和分类

	1.手工操作阶段:		缺点:人机速度矛盾
    2.批处理阶段://单道批处理系统(引入脱机输入输出技术)特点;自动性、顺序性、单道性
        		优点:缓解人机速度矛盾		缺点:资源利用率仍然很低
        		//多道批处理系统(操作系统开始出现)特点:多道、宏观上并行、微观上串行
        		多道批处理系统的I/O设备可与CPU并行工作,由中断技术实现
        		优点:多道程序并发执行,资源利用率高		缺点:不提供人机交互功能,系统开销大
    3.分时操作系统:cpu的运行时间分为很短的shijianp
        		优点:提供人机交互		  缺点:不能优先处理紧急任务
    4.实时操作系统:
        		//硬实时系统:必须在绝对严格的规定时间内完成处理,如导弹发射、自动驾驶
        		//软实时系统:能接受偶尔违反时间规定,火车票购票系统
        		优点:能优先处理紧急任务
        		
        		实时操作系统必须在"被控制对象规定时间内"处理来自外部的事件。
        		实时操作系统采用抢占式的优先级高者优先,实时操作系统利用率低。
        
     //下面的了解
     (1)网络操作系统、分布式操作系统、个人计算机操作系统  	
     (2)分布式操作系统和网络操作系统的不同:分布式操作系统中的若干计算机互相协同完成同一任务
     (3)个人计算机操作系统:WindowsLinuxMacintosh(4)在IBM-PC中,操作系统称为:微型计算机操作系统
     (5)多任务操作系统可在同一时间内运行多个应用程序,多个任务必须互斥地访问共享资源,所以要对共享资源进行保护。不一定要在多cpu		 上才能运行

运行机制

	两种指令:特权指令(核心态,只允许操作系统使用)、非特权指令		//一条高级语言的代码翻译过来可能会对应多条指令
	两种处理器状态:核心态(管态,可运行除了 陷入指令(防管指令/trap指令)以外的所有指令)、用户态(目态)
        			//PSW中0表示用户态,1表示核心态
	两种程序:内核程序(核心态,特权指令)、应用程序

操作系统内核(软件)

1.支撑功能:	
	1.时钟管理:实现计时功能
    2.中断处理:负责实现中断机制
    3.原语:(1)是一种特殊的程序,处于操作系统最底层,最接近硬件的部分
    	   (2)具有原子性
    	   (3)运行时间短,调用频繁
2.管理功能:
    对系统资源进行管理的功能:		
    (1)进程管理:进程状态管理、进程调度和分配、创建与撤销进程控制块等		
    (2)存储器管理;存储器的空间分配和回收、内存信息保护程序、代码对换程序		
    (3)设备管理:缓冲区管理、设备分配和回收等。
    //内核是计算机上配置的底层软件,是操作系统最基本、最核心的部分。
    //实现操作系统内核功能的那些程序就是内核程序

计算机系统的层次结构

用户
用户 应用程序
非内核功能
(操作系统.内核功能)进程管理、存储器管理、设备管理等功能
(操作系统.内核功能)时钟管理、中断处理、原语(设备驱动、CPU切换等)
裸机(纯硬件)

操作系统的体系结构

	1.大内核:
        优点:高性能
        缺点:内核代码庞大,结构混乱,难以维护
    2.微内核:
        优点:内核功能少,结构清晰,方便维护,保证了操作系统的可靠性。
        缺点:需要频繁地在核心态和用户态之间切换,性能低

中断和异常

	1.中断机制的诞生:为了实现多道程序并发执行而引入的一种技术
    2.中断的概念和作用:
        发生中断,就意味着需要操作系统介入开张管理工作(如进程切换和分配I/o设备都需要使用特权指令 ),CPU会立即进入核心态
        中断是CPU从用户态进入核心态的唯一途径。
        //核心态==>用户态 的切换,执行一个特权指令,把PSW的标志位改为0  
        核心态下唯一不可执行的是 陷入指令
    3.中断的分类:
        (1)内中断(来自CPU内部,与当前执行的指令有关,也称"异常",陷入,例外):
        		自愿中断---指令中断,如://系统调用时使用的防管指令(又叫陷入指令,trap指令)
        		强迫中断:硬件故障(如缺页)、软件中断(整数除0(2)外中断(中断,来自CPU外部,与当前执行的指令无关):
        		外设请求:如I/O操作完成发出的中断信号
        		人工干预:如用户强行终止一个进程 
        
        内中断的另一种分类方式:(1)陷阱,陷入(trap):有意而为之的异常,如系统调用
        					(2)故障(fault):由错误条件引起的,如缺页
        					(3)终止(abort):致命错误,不可恢复的,整数除0 
     
    4.中断的处理过程:
        (1)每条指令执行结束后,CPU检查是否有外部中断信号
        (2)若有外部中断信号,则需要保护被中断进程的CPU环境(如程序状态字PSW、程序计数器PC、各种通用寄存器1(3)根据中断信号类型转入相应的 中断处理程序(核心态)
        (4)恢复原进程的CPU环境并退出中断,返回原进程继续往下执行
        即:
        	传递系统调用参数 ==> 执行陷入指令 ==> 执行相应的服务程序 ==> 返回用户态
         
      	外部中断处理过程:PC值由中断由隐指令,即硬件自动保存,而通用寄存器PSW内容由操作系统保存。
        内部异常不能被屏蔽,一旦出现立即处理。,对于非法指令、除数为0等异常,必须终止。
        

系统调用

什么是系统调用,有何作用

	操作系统提供给应用程序的接口
    应用程序通过系统调用来请求获得操作系统的服务
  //系统调用会使CPU从用户态进入核心态
        
    分类:设备管理、文件管理、进程控制、进程通信、内存管理
        //凡是与资源有关的操作、会直接影响其他进程的操作,一定需要操作系统介入,即需要通过系统调用来实现,这样可以保证系统的稳定性和安全性
        
        系统调用一般执行特权指令才能完成,因此//系统调用的相关处理需要在核心态下进行

系统调用和库函数的区别

	系统调用是操作系统向上层提供的接口
    有的库函数是对系统调用的进一步封装
    C或者java等是通过高级语言提供的库函数间接进行系统调用
        
    不涉及系统调用的库函数: 如 	取绝对值 的函数
    涉及系统调用的库函数:如 创建一个新文件 的函数

系统调用背后的过程

	1.传递系统调用参数
    2.执行陷入指令			//用户态
    3.执行系统调用相应服务程序	//核心态
    4.返回用户程序
        
        //注意:
        		1.陷入指令是在用户态执行的,执行陷入指令之后立即引发一个内中断,从而进入核心态,退出核心态:中断返回指令
        		2.发出系统调用是在用户态,而对系统调用的相应处理在核心态下进行	
        	 ***3.陷入指令是唯一一个只能在用户态执行,而不可以在核心态执行的指令

其他

	1.通用操作系统使用时间片轮转调度算法,用户不需要预订运行时间
    2.输入输出指令需要中断操作,中断必须在核心态下执行。
    3.多道性是为了提高系统利用率和吞吐量而提出的。
    4.程序设计无法形成屏蔽中断指令。
    5.中断时操作系统必须提高的功能。
    6.用户通过防管中断进入核心态。
    7.进程调度由调度算法决定CPU使用权,由操作系统实现,无须硬件支持。而时钟管理、地址映射和中断系统就需要硬件的支持。
    8.进入中断处理的程序属于:操作系统程序。
    9.计算机通过硬件中断机制完成由用户态到核心态的转换。
    10.命令解释程序属于 命令接口,用户可直接使用。
    	中断处理和子程序调用都需要压栈以保护现场,中断处理一定会保护的是:程序状态字寄存器,子程序只需要保存程序断点,即该指令的	11.下一条指令的地址。
        
  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-09-09 11:50:45  更:2021-09-09 11:52:33 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 19:47:38-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码