首页 > 其他分享 >操作系统基础(一)

操作系统基础(一)

时间:2024-07-18 23:54:18浏览次数:7  
标签:操作系统 基础 程序 用户 接口 并发 CPU

目录

一. 定义

操作系统(Operating System,OS):控制和管理计算机系统的软件和硬件资源,合理组织资源分配;提供用户和其他软件接口和环境;是计算机系统最基本的系统软件

  • 操作系统是系统资源管理者;向上层提供服务;是最接近硬件的软件。
  • 操作系统对软硬件资源管理:如打开“任务管理器”如下:

联想截图_20240716230649.png

计算机系统层次结构

联想截图_20240716230948.png

二. 功能一:资源管理者

处理机管理

  • 分配和控制中央处理单元(CPU)的时间,确保多个进程或线程能够公平、有效地使用CPU资源。
  • 调度算法,如先来先服务(FCFS)、最短作业优先(SJF)、优先级调度、时间片轮转等,用于决定哪个进程或线程应该获得CPU的使用权。
  • 实现进程同步、互斥和通信机制,确保进程间协作的正确性。

存储器管理

  • 管理主存储器(RAM),包括内存分配、回收和保护
  • 提供内存管理机制,如分页、分段和虚拟内存技术,以满足多道程序对内存空间的需求。
  • 实现内存保护和地址映射,确保每个进程只能访问其被授权的内存区域。

文件管理

  • 提供文件的存储、检索、更新和保护功能。
  • 管理文件的目录结构,支持文件的按名存取。
  • 实现文件的逻辑结构和物理结构之间的转换
  • 提供文件保护和共享功能。

设备管理

  • 负责I/O设备(如磁盘、打印机、键盘等)的管理和控制
  • 实现设备的分配和回收,确保设备能够被高效、安全地使用。
  • 提供设备的驱动程序接口,使得操作系统能够控制设备的操作。
  • 实现设备的缓冲管理,提高I/O操作的效率

三. 功能目标二:实现用户接口(向上层提供服务)

  • 硬件:只能读取二进制指令,对外(上层)接口交互性差。
  • 操作系统:对硬件实现接口转换,对外(上层)接口交互性好。
  • 用户/软件:无需关心底层原理。只需要对操作系统发出命令即可。

GUI图形化用户接口

用户通过形象的图形化界面来对计算机进行操作,不需要记忆复杂命令、参数。

联机/脱机命令接口

  • 联机命令接口:=交互式命令接口;特点:逐句执行命令,如:打开cmd命令框,使用time命令,会得到当前时间显示。
  • 脱机命令接口:=批处理命令接口;特点:批量执行命令。如:windows系统.bat文件,里面填充了一系列命令。

程序接口

  • 定义:可以在程序中使用系统调用方式(API)使用程序接口;普通用户不能直接使用,只能通过程序代码间接使用。

联想截图_20240716233722.png

四. 操作系统的特征

并发性

  • 定义:≥2个程序同一时间间隔内发生。宏观上是同时发生,微观上交替发生。

操作系统是伴随“多道程序技术”出现的,因此程序并发性是与生俱来的。

tips:并行性≥2个程序同一时刻发生。即同时发生。

  • 单核CPU同一时刻只能执行一个程序,因此只能采用并发执行
  • 多核CPU同一时刻能执行多个程序,因此可以采用并行执行,并发执行。【N个核即同时可以执行N个程序】

共享性

定义:即资源共享,系统资源可以被多个并发执行的进程共同使用。
实现方式:互斥共享,同时共享。

  • 互斥共享:一个时间段内只允许一个进程访问
  • 同时共享:允许一个时间段内多个进程“同时”访问

同时:往往指宏观上,微观上可能是交替访问(即分时共享)。

失去并发性,共享性就没有意义;失去共享性,并发性就无法实现。

虚拟

定义:虚拟是指把一个物理实体变为若干逻辑上的对应物。物理实体实际存在,逻辑对应物是用户感受到的。
技术:空分复用(如虚拟存储技术);时分复用(如虚拟处理器);

  • 空分复用(例如:虚拟存储技术):用户感受到的空间/内存大小 > 实际物理空间/内存的大小。

举例:内存有限,但是 可以同时运行多个 合计内存占用超过实际大小 的程序。

  • 时分复用:将大时间段分成若干小时间段,把若干微小时间段分给各个进程服务。

例子:单核CPU可以同时运行多个程序。【微观上是交替占用cpu运行】

失去并发性,一个时间段只能运行一个程序,就会失去虚拟性的意义,

异步

定义:异步性是指多道程序环境下,允许多个程序并发执行,但由于资源有限,进程的执行不是一贯到底的,走走停停,以不可预知的速度向前推进

失去并发性,则只能串行运行程序,就不会出现异步性。

五. 操作系统发展与分类

手工操作阶段

  • 最初程序员使用纸带作为程序介质,利用纸带机读取0,1序列。

处理流程:手工装入纸带—> 读取纸带内容----> 进行计算(快)----->手工取出纸带。

  • 缺点:用户独占全机,人机速度矛盾导致资源利用率极低。

批处理阶段

  • 单道批处理系统:引入脱机输入/输出技术,并由**监督程序(操作系统雏形)**负责控制作业的输入,输出。
  • 优点:一定程度上缓解了人机速度矛盾,资源利用率有所提升。
  • 缺点:一段时间间隔内,内存中只能运行一个程序CPU有大量时间等待空闲I/O完成,资源利用率依然很低。
  • 多道批处理系统:每次向内存中读入多道程序。操作系统正式诞生,用于支持多道程序并发执行。
  • 优点:多道程序并发执行,共享计算机资源。大幅度提升资源利用率,系统吞吐量增大。
  • 缺点:用户响应时间长,没有人机交互功能(eg.不能在运行中调试/加入参数等)

分时操作系统

  • 计算机以时间片为单位,轮流为各个用户/作业服务,各个用户可以通过终端与计算机进行交互。
  • 优点:用户请求可以及时响应,解决了人机交互问题。运行多个用户共享一台计算机,并且用户对操作系统相互独立,感受不到别人的存在。
  • 缺点:不能优先处理紧急任务。操作系统对各个用户/作业都是绝对公平,循环提供时间片,不区分任务紧急性。

实时操作系统

  • 能够优先响应紧急任务,某些紧急任务不需要时间片排队。
  • 计算机系统收到外部信号后及时处理,要在严格时限内处理完毕
  • 主要特点:及时性,可靠性
  • 分类:硬实时系统,软实时系统
  • 硬实时系统:必须绝对遵守规定时间内完成处理。(如:导弹控制系统,自动驾驶系统)
  • 软实时系统:可以接受偶尔违反时间规定。(如:火车订票系统)

其他几种操作系统

联想截图_20240717164111.png

标签:操作系统,基础,程序,用户,接口,并发,CPU
From: https://blog.csdn.net/qq_74259765/article/details/140501213

相关文章

  • Java基础 韩顺平老师的 集合 的部分笔记
    498,集合介绍 499,集合体系图(两个图背下)  packagecom.hspedu.collection;importjava.util.ArrayList;importjava.util.HashMap;publicclassCollection01{publicstaticvoidmain(String[]args){//老韩解读//1,集合主要是两组(单列......
  • 0基础学python-17:文件读写
    目录前言文件读写三步走:        打开文件-->读写文件-->关闭文件一、打开文件1.文件位置绝对位置:相对位置:2.open()方法二、读写文件1.读取文件2.写入文件三、关闭文件1.close()2.with语句前言        读写文件是最常见的IO操作。Python内置......
  • 高速接口自用笔记:GT基础(二)
    FPGA中相同BANK的电压需要一致,以实现高效的性能。本章是对GT基础(一)的补充。大量搬运:公众号-数字站:https://mp.weixin.qq.com/s/Z8ti7DIMdWEh8ogM0SQU4ghttps://mp.weixin.qq.com/s/0YoA9jhBOheZFwtTDJ75aQ 老哥写的很好,推荐都去看。小知识点:1.通过原语BUFDGE得到的时钟,可......
  • Java基础-基本类型和包装类型
    基本类型Java有八种基本类型intfloatdoublelongbooleancharshortbyte基本类型如果是局部变量,那它们的位置会在虚拟机栈种。如果是成员变量它们会存放在堆中。包装类型相对应的Java也有八种包装类型IntFloatDoubleLongBooleanCharShortByte区别1.默认值:......
  • Java基础常见面试题总结(下)
    目录异常Exception和Error有什么区别?Throwable类常用方法有哪些?  try-catch-finally如何使用?finally代码块中的代码一定会执行吗? 异常使用有哪些需要注意的地方? 泛型什么是泛型?有什么作用?泛型的使用类型有哪几种?项目中哪里使用到了泛型?反射反射是什么? ......
  • Java基础-Java代码变成机器可执行代码过程
    1Javac编译因为JVM把Javac把Java代码编译成字节码,即把.java文件变成.class文件,JVM(Java虚拟机)可以理解字节码文件,将其转换为机器可以执行的代码,所以只要安装了JVM的平台,都可以运行Java程序。2JVMJavac编译后,Java文件就变成了字节码文件,JVM类加载器会去加载字节码文件,然后由解......
  • 从操作系统层面认识Linux
     描述进程-PCBLinux操作系统下的PCB是:task_structhttps://www.cnblogs.com/tongyan2/p/5544887.htmlhttps://www.cnblogs.com/tongyan2/p/5544887.html校招必背操作系统面试题-什么是PCB(进程控制块)?_哔哩哔哩_bilibili校招必背操作系统面试题-什么是PCB(进程控制块)?,视......
  • Java基础第三弹
    文章目录Java基础知识全解第三弹一、面向对象编程1.1面向对象编程思想1.2类和对象关系1.2.1类1.2.2对象2.对象创建和使用3.构造方法4.方法的调用5.java的内存结构6.成员变量和局部变量7.方法的重载二、this、static关键字1.this2.static(静态的)三、包1.包的由来2......
  • 第四节 JMeter基础-初级登录【固定用户登录】
    声明:本文所记录的仅本次接口测试所用到的知识点。1.认识JMeter(1)测试计划:测试的起点,所有组件的容器。相当于一个测试项目,对测试计划展开一系列的操作。(2)线程组:一定数量的用户。  ①线程数:1。默认为1,表示一个用户。  ②Ramp-UP时间:1。默认是1秒,表示启动线程的时间。在n秒......
  • 十天学会Python——第8天:Linux基础
    1Linux基础1.1认识LinuxLinux目录:1Linux系统只有一个根目录/,所有原文件都在它下面2Linux主要目录/:根目录/bin:可执行的二进制文件的目录/etc:系统配置文件存放的目录/home:用户家目录1.2Linux基础命令1.2.1查看目录命令命令说明ls查看当前路径的目录信......