当前位置: 首页 > article >正文

OS 的运行和结构

 操作系统学习笔记_1 介绍;OS 的运行和结构_为管理程序的执行,os需要为程序的每次执行建立什么样的数据结构-CSDN博客
操作系统是什么?

计算机结构大概分为四层:

    用户
    应用程序
    操作系统
    硬件

操作系统是一类系统软件,调度硬件资源,合理分配管理软件(因此操作系统又被称作资源管理器(resource manager))。
image-20221026211255236

程序要运行首先要被放到内存中,然后才能被 CPU 处理;运行中的程序叫进程。

双击打开 QQ.exe,对应进程就会被放到内存中;

QQ 正常运行过程中,对应进程被 CPU 处理。

QQ 若想调用摄像头等,操作系统会把相应硬件分配给他。

计算机还会提供用户和硬件之间的接口。主要分为三种:GUI 接口,命令接口,程序接口。

联机/交互式命令接口:用户说一句,系统做一句。(cmd)

脱机/批处理命令接口:用户说一堆,系统做一堆。(.bat)

程序接口:通过程序才能调用。(.dll)

只有硬件的计算机叫裸机;操作系统将硬件资源转换为通用的、强大的虚拟形式,有时操作系统也被称为虚拟机。操作系统提供几百个系统调用(system call)供其他应用程序使用,实现运行程序、访问内存和设备等操作,也可以说操作系统为其他应用程序提供了一个标准库(standard library)。
操作系统几大特征

操作系统围绕以下几大主题展开:

    虚拟化(virtualize):尽管一般只有一个 CPU,但是能同时进行多个进程,造成多个 CPU 的假象。多个程序实例同时用到一片内存地址时,却能各运行各的,值互不干扰。实际上每个进程是在访问自己的私有虚拟内存空间(virtual address space),虚拟内存通过一定的规则映射到物理内存上,运行中的程序的物理内存是完全独立的。
    并发(concurrency)**不是并行!并行是同时发生,并发是交替发生。**单核计算机就会采用并发的程序运行方式。现在尽管都有四核计算机,可以进行4个程序的并行操作,但是并发仍然很重要。
    共享:系统中的某些资源供多个进程使用。

​ 互斥型共享就是一次只能一个程序用,如摄像头;

​ 同时型共享就是两个进程交替使用,如 QQ 微信 同时发送文件。

    异步性:并发执行的程序有时候会卡住。比如 AB 程序都要用同一个地址,A先用了,B用的时候就要等A用完释放才能用。

操作系统历史

手工操作阶段:用户手工打点,给机器。人机协调不均衡,资源分配不均匀。

批处理阶段——单道批处理系统:用户打好的点交给磁带,磁带读入计算机速度快得多(监督程序,早期的操作系统)。但是利用率仍然很低。

批处理阶段——多道批处理系统:每次内存中同时读入多个程序。多个程序并发执行,有了”中断“的概念。但是用户在程序执行的时候没法干涉,人机交互很差。

image-20221202180444486

分时操作系统:计算机以时间片为单位轮流给所有用户提供服务。用户的请求可以被及时响应,解决了人机交互问题;各个用户之间也感受不到其他用户的存在。但是众生平等,没有优先级。

实时操作系统:优先度高的任务可以先被处理,并且必须在给定的时限内完成任务。

image-20221202181100161
OS 运行机制和体系结构

计算机中的指令有的安全(加减乘除运算),有的危险一点(清空内存)。因此需要通过权限控制限制用户能执行的指令。

具体实现方法为:CPU 处于核心态(管态)时可以执行所有指令;处于用户态(目态)时只能执行非特权指令。

内核程序是系统的管理者,可以执行所有指令,运行在核心态;

应用程序只能执行非特权指令,运行在用户态。

image-20221202214904545

操作系统的内核包含橙黄两部分:大内核。

只包含黄色部分:微内核。

各自的缺点:大内核组织结构混乱,难以维护;微内核频发切换,性能低。
 
                        
原文链接:https://blog.csdn.net/jtwqwq/article/details/126884332


http://www.kler.cn/a/405673.html

相关文章:

  • el-table-column自动生成序号在序号前插入图标
  • 利用c语言详细介绍下希尔排序
  • springboot基于java语言的医疗设备管理系统
  • pytorch 的交叉熵函数,多分类,二分类
  • 经济增长初步
  • 初见哈希表容器,及哈希表模拟
  • NLP论文速读(CVPR 2024)|使用DPO进行diffusion模型对齐
  • 昨天刚发布的新机,把前置镜头彻底干没了
  • coe文件转mif(c语言)
  • Gooxi受邀参加海通证券AI+应用生态大会,助力数智金融高质量发展
  • DrugLLM——利用大规模语言模型通过 Few-Shot 生成生物制药小分子
  • 简易安卓句分器实现
  • 论文 | Learning to Transfer Prompts for Text Generation
  • 实现金蝶云星空与钉钉数据无缝集成的技术方法
  • Halo 正式开源: 使用可穿戴设备进行开源健康追踪
  • 02:spring之AOP
  • 原生openGauss与Oracle数据库函数兼容性对比验证测试
  • 一篇文章了解何为 “大数据治理“ 理论与实践
  • Spring监听的使用、原理、源码分析
  • 【Linux】常用命令练习