1.6-操作系统概述总结

版权声明:本文为博主原创文章,遵循CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/g8433373/article/details/88088507

1-一个完整的程序执行
下面展示一段c语言代码,大家想一下我们执行的时候到底经历了什么?

#include<stdio.h>
int main(int argc, char const *argv[])
{
  /* code */
  puts("hello world");
  return 0;
}

下面了解下完整的执行过程:
  • 用户告知操作系统(方式很多,如:在命令行键入相应的命令;通过鼠标双击hello world程序的图标)
  • 操作系统判断文件是否是可执行文件(Windows:PE;Linux:ELF)
  • 操作系统创建一个进程,将可执行文件格式映射到进程结构,由该进程执行程序
  • 操作系统将控制权交给调度程序,为hello world程序设置上下文环境,跳到程序开始之处(调度程序如何选中? i/o多路复用?)
  • 执行第一条指令,发生缺页异常(为什么缺页异常?)
  • 因为代码执行需要将代码load到内存, 但是你一开始没有被分配,于是操作系统(内存管理模块)就会分配一块空闲的内存来执行hello world,有时候一页还不够,就有可能进行多次的缺页异常以及分配内存的操作 ps.代码是从磁盘读入内存
  • 接着操作系统执行puts函数(系统调用),作用是在标准的输出设备上显示字符串
  • 操作系统把需要写入屏幕的字符串送给一个进程
  • 控制设备的进程通知窗口显示字符串,窗口系统确定是个合法操作,将字符串->像素->设备存储映像区
  • 视频硬件->显示器可以接受的控制数据信号
最后 在屏幕上看到了hello world。


2-操作系统作用
  作用一: 操作系统是资源的管理者
    管理哪些资源?
      硬件资源: CPU,内存,设备(I/O设备,磁盘,时钟,网卡等)
      软件资源: 磁盘上的文件,各类管理信息等
    怎么管理资源?
      通过数据结构和算法跟踪记录资源的使用情况(数据结构决定可以有哪些功能, 基于这些功能可以策划有哪些算法支持资源如何分配,有哪些空闲资源可以分配等问题)
    相关策略
      静态分配策略: 程序运行前就将资源全部分配完成,会造成资源浪费
      动态分配策略: 执行过程中,需要资源再提出申请,会根据数据结构决定是否分配
      分配和回收: 具体取决于数据结构(如 可以使用位图去实现,已分配标注1,未分配0)
    资源管理角度-操作系统五大基本功能
      进程线程管理(CPU管理): 进程线程状态, 控制, 同步/互斥, 通信, 调度…
      存储管理: 分配/回收, 地址转换, 存储保护, 内存扩充…
      文件管理: 文件目录, 文件操作, 磁盘空间, 文件存储控制 …
      设备管理: 设备驱动, 分配回收, 缓冲技术…
      用户接口: 系统命令, 编程接口
  作用二: 操作系统是系统服务的提供者
    举例
      进程的创建,执行
      文件和目录的操作
      I/O 设备的使用
  作用三: 操作系统对机器硬件的扩展
    举例
      操作系统是硬件基础上的第一层软件
      将硬件的复杂程度简化(例如: 软盘的I/O操作)


3-操作系统的特征
  并发
    指的是操作系统具有同时处理多个任务的能力
    并发引起的问题
      任务切换,保护,互相依赖任务之间同步的问题
    同时执行多个程序的错觉: 单CPU场景下,任务之间轮流执行
    并行: 不同任务同时在多个硬件部件上执行。(注意并发和并行的区别:马拉松和110米跨栏)
  共享
    指的就是多个用户程序共同使用操作系统的资源
    举例
      互斥共享(打印机)
      同时共享(重入代码,磁盘文件)
    问题: 操作系统资源分配,保证不同进程间不被影响
  虚拟
    将物理实体(CPU,内存)映射为若干个逻辑实体;分时,分空间
    目的: 提升资源利用率
    举例:
      CPU: 每个进程在虚拟CPU上在跑,但是微观上只有一个进程在一个CPU上在跑
      进程独立地址空间,物理上是共用一块物理内存
      显示设备可以多开, 也是虚拟化的结果
  随机
    操作系统必须随时对次序不可预测的任务进行响应
    举例
      进程运行速度不可预知,多个进程同时运行(上下CPU)
      难以重现系统在某一个时刻的状态


4-操作系统架构
  Windows
    简化了一版基本架构,如图:

    

 

    其中和硬件打交道的就是:内核和硬件抽象层
    用户和操作系统打交道的是:动态链接库
  UNIX
    看下简单版的UNIX架构

    

扫描二维码关注公众号,回复: 7034722 查看本文章

    看下相对全面一些的

    

  Linux

    感觉用的最多的,按照自己的理解整了一套架构图,不知道对不对,哈哈

    

5-操作系统的分类

    操作系统的发展是随着计算机硬件技术的发展
  批处理系统
    单道批处理系统
    多道批处理系统
    真脱机
    假脱机(Spooling技术) : 这个觉得很经典
  分时操作系统
    轮流为每个用户服务
    时间片: 按照时间片轮转为每个用户服务
    追求目标: 响应时间
  通用操作系统
    将分时和批处理结合
    场景前台: (分时优先,批处理后)
    场景后台: (批处理先,分时后)
  实时操作系统
    能够及时响应外部请求,能够在严格的时间内完成
    实时过程控制: 航空
    实时通信系统: 交换机,银行
    追求目标
      1 严格时间内能有响应
      2 高可靠性
  个人计算机操作系统
    计算机在某一时刻只为一个人服务
    追求目标: 界面友好,使用简单,丰富应用软件
  网络操作系统
    基于网络体系结构和网络协议标准开发的网络模块
    功能: 网络通信,安全,资源共享,以及各种网络应用
  分布式操作系统
    以网络为基础或者以多机为基础,特征是将计算任务分布在不同计算机上
    技术点: 任务分配,调度,负载均衡
    优点: 处理能力强,速度快,可靠性强,具有透明性
  嵌入式操作系统
    对应不同设备的软硬件系统, 他是某一个设备中的系统, 不一定是计算机
    功能: 控制设备中的各个部件协调工作, 合理调度
  智能卡操作系统
    智能卡: 一种带有CPU芯片的卡片
    特点: 由于非常小,对能耗和存储都有严格的限制
    举例: 电子支付


6-核心点
  操作系统的定义
  操作系统的三个作用, 四个特征
  Spooling技术
  Windows,UNIX,Linux架构特点

猜你喜欢

转载自www.cnblogs.com/morwing/p/11361233.html