01.基本概念

操作系统

为什么要有操作系统?

计算机时一个十分复杂的系统,又cpu、内存、磁盘、IO设备、网络接口等等复杂的硬件组成,人的精力是有限的,不可能了解所有的硬件接口,但是程序可以。

所以我们在计算机上安装了一层软件(程序),称为所作系统

概念

操作系统是软硬件之间的起桥梁作用的一个庞大的程序

内核

内核时操作系统的核心,它是用来帮助操作系统管理硬件资源的。

应用程序只需要关系与内核的交互,不用关系硬件的细节

内核的能力:
1.进程调度:管理进程、线程、决定那个进程、线程使用CPU
2.内存管理:决定内存的分配和回收
3.提供文件系统:inode、block
4.管理硬件设备:为进程和硬件设备之间提供通信能力
5.内核空间,只有内核程序可以访问
6.用户空间,专门给应用程序使用
cpu有两种状态,用户态和内核态

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

库函数和系统调用

库函数

把常用的一些函数放在一个库里面(文件),提供给不同的人调用(lib)

系统调用

内核的入口,可以完成用户态到内核态的切换(因为只有内核态才能管理硬件资源)
当应用程序使用系统调用的时候,会产生一个中断,cpu中段当前执行的用户程序,跳转到中断处理程序,也就是开始执行内核程序。内核处理完成后,主动触发中断,把cpu的执行权交回给用户程序

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

虚拟内存地址

每个进程都会有自己的虚拟内存地址,操作系统会提供一种虚拟地址和物理地址的映射机制,将虚拟地址映射为真实的物理地址,这种内存管理方式,被称为虚拟内存

程序和进程

程序

使用编程语言编写的代码经过预处理、编译、汇编、连接处理后得到的计算机可以理解和执行的指令叫做程序

进程

运行起来的程序叫做进程,时操作系统进行资源分配和程序调度的基本单位

并发

微观上串行,宏观上并行(点时间串行,段时间并行)
我们知道cpu的io速度远远大于磁盘的io速度,当进程读取数据的时候,cpu不需要阻塞等待数据的返回,可以去执行其他的进程,等到磁盘中数据返回时,给cpu发送中断,cpu出行回来执行
因为cpu与磁盘速度差距特别大,这句造成了宏观上多个进程在同时运行

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-05-11 13:38:05       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-05-11 13:38:05       101 阅读
  3. 在Django里面运行非项目文件

    2024-05-11 13:38:05       82 阅读
  4. Python语言-面向对象

    2024-05-11 13:38:05       91 阅读

热门阅读

  1. golang编程规范

    2024-05-11 13:38:05       25 阅读
  2. 2024届SLAMer秋招算法岗面试题总结

    2024-05-11 13:38:05       36 阅读
  3. 简化 KNN 检索【翻译】Simplifying kNN search

    2024-05-11 13:38:05       34 阅读
  4. Milvus基本概念

    2024-05-11 13:38:05       28 阅读
  5. [排序算法]基数排序

    2024-05-11 13:38:05       29 阅读
  6. ROS——Action学习

    2024-05-11 13:38:05       24 阅读
  7. vue-video-play使用之播放hls格式视频

    2024-05-11 13:38:05       35 阅读