计算机操作系统笔记

  • cpu指令

    • add(R1 ,R2)
      • 运算器
      • 控制器
        • 开关
        • 电流速度
  • 计算机的核心

    • 算数运算
    • 逻辑运算
    • load,
    • jump
      • 跳转执行
    • stool(储存)
  • 内存管理

    • 内存

      • 堆栈
          • 用来分配未知的数据
        • 储存和读取比较麻烦
          • 储存固定的数据
          • 长度是数据长度是一样的
          • 先进后出后进先出
          • 读取和储存方便
          • 释放内存更简单
      • 代码
        • 储存代码文本代码中的变量名指向数据块中的地址
      • 数据
        • 储存变量等数据
    • libc

      • 语言编译后执行libc中的函数
  • 文件管理

    • 储存设备
      • 磁盘
      • 固态硬盘
  • 储存方式

    • 通过把文件分为块,每块都有自己的地址

      • 空闲块
      • 管理空闲块
      • 管理储存数据分为元数据和储存数据
        • 元数据:文件名,所有者,大小,路径
          • 损毁之后会导致数据无法读取
        • 储存数据:纯文本文件数据,,,
    • 逻辑管理

      • 储存的数据比较分散
      • 读取和读入的时候需要根据位置来合成离散数据
    • EXT4

      • 块1

        • 超块

        • 描述数据结构,块组

        • GDT

        • 文件系统

        • 空间块

          • 管理空闲块
            • 位置状态
        • index bit(两个)

          • 管理元数据块
            • 状态
              • 状态位0空
              • 状态位1满
          • 管理数据块
        • inode(节点)组成的数组

          • 储存元数据
            • 单个inode(结构体)
              • 文件名:,,,,
              • 大小。。。
              • 创建者。。
              • ,,,,
        • 储存的数据

      • 块2

      • 块3

  • 文件格式

    • 文件类型
    • 文件的排头
      • 格式编码等。。
      • 文件数据
    • 建立文档系统
      • mkdir建立文件夹
      • fdisk sdb
    • mkfs.ext4 sdb1 建立文档系统
      • mount 挂装
      • umount反挂装(弹出)
    • dmesg 打印系统消息
      • dd if=sdb/zero of=dev/sdb count=200(分区)
    • |表示上个执行完之后返回值传给|后面的命令
第二节复习
  • 文件格式
    • 文件解析
      • hexdump -C -n 16 filename
  • 挂载的原理
    • 挂载了之后就是把U盘的根目录覆盖到系统中的某一个路径
      • 打开被覆盖的文件的时候就是打开U盘的根目录
  • apt命令
    • apt search
    • apt install
中断处理
  • 概念

    • cpu正常运行时,事件引起cpu中断正在运行的程序
  • 中断处理函数

    • cpu在收到中断之后会运行中断处理函数
  • 中断源

    • 产生中断的地方
  • 中断向量

    • 用来形成中断服务的的首地址
  • 中断向量表

    • 放在寄存器中的中断源地址
  • cpu

    • 中断控制器
      • 级联一个外部设备中断器
  • 查看设备的中断号

    • cat /proc/interupts
  • cpu的时钟中断

    • cpu在执行的过程中检查进程的运行时间会自己产生一个时钟中断
内存
  • 磁盘中的应用程序加载到内存的时候会产生的问题

    • 地址分配问题
    • 安全问题
    • 应用程序的驻留问题
  • 内存中的地址

    • 程序运行的时候需要把虚拟地址映射到物理内存地址

      • 操作系统来做这件事
      • 把虚拟地址和物理地址分为页来分配
        • 映射原理
        • 页的大小是一样的
      • 页表索引
        • P一个比特位,1,表示该虚拟页有物理页
        • M位1表示对应的物理内存页被写过
        • S位1表示为核内存0表示用户内存
        • 前20位来区分有多少页
        • 后面的位数来分配页中的地址
      • 页表分级
        • 目录
          • 目录项
        • 页面
          • 页表项
        • 页表
          • 分配物理内存
    • hexdump -C -n 256 4.bmp

      • 语法

        • hexdump [选项] [文件名]…
      • hexdump

        • Linux下的一个二进制文件查看工具,它可以将二进制文件转换为ASCII、八进制、十进制、十六进制格式进行查看.
      • 选项

        • -n length 只格式化输入文件的前length个字节。
        • -C 输出规范的十六进制和ASCII码。
        • -b 单字节八进制显示。
        • -c 单字节字符显示。
        • -d 双字节十进制显示。
        • -o 双字节八进制显示。
        • -x 双字节十六进制显示。
        • -s 从偏移量开始输出。
        • -e 指定格式字符串,格式字符串包含在一对单引号中,格式字符串形如:‘a/b “format1” “format2”’。
      • 文件名

      • bmp文件

      • 典型的BMP 图像文件由四部分组成:

        1 : 位图文件 头数据结构 ,它包含BMP 图像文件的类型、显示内容等信息;

        2 : 位图信息数据结构 ,它包含有BMP 图像的宽、高、压缩方法,以及定义颜色等信息;

        3: 调色板 ,这个部分是可选的,有些位图需要调色板,有些位图,比如真彩色图(24 位的 BMP )就不需要调色板;

        4 : 位图数据 ,这部分的内容根据BMP 位图使用的位数不同而不同,在 24 位图中直接使用 RGB ,而其他的小于 24 位的使用调色板中颜色索引值。

    • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-g74locJZ-1574509405071)(C:\Users\86176\AppData\Roaming\Typora\typora-user-images\image-20191123115410594.png)]

  • Java虚拟机运行时的内存分配

    • main函数中
      • int i=0;—————数据段
      • new xxx————存放在堆里面
      • File file= run();————run函数返回一个指针(堆中的)赋值给file
      • int i=returnInt()————从寄存器中返回一个值赋值给i;
    • 类中的普通函数(无返回值)
      • int i=0;————只有调用函数的时候才会有存放在栈中,函数运行结束时清除栈帧
      • new xxx———计算是否能放在栈里面,如果不行就放到堆里面,函数结束时清除栈帧,
        • 如果存放在堆中的话内存被释放后会产生碎片化内存。整理起来会很麻烦
    • 普通函数(int string duuble…)返回普通变量
      • return i;————返回一个值到寄存器中,在由寄存器赋值给返回的位置(寄存器的速度比内存快)
    • 普通函数,返回一个对象
      • return file;———存放在堆里面,返回时返回一个指针(堆的地址),并且会保留存在堆中的位置
  • serialze

    • class  bmp_header { 
      char[2]  magic_nu;//两个字节  
      int   len;   
      byte[4]  reserved;
      .......
      }
      
    • 把一个文件的编码按照一定的格式封装起来;————————————序列化,

    • 在主函数中解析文件的时候直接把整个类的对象传进来‘然后按照一定的格式去解析文件

  • 文件的储存格式分大端和小端

    • 根据文件的格式来判断是大端还是小端
    • 区别
      • 大端:小的在高地址,大的在低地址,——power ARM
      • 小端:小的在低地址,大的在高地址,———x86…
    • 文件会在编码中给出自己是大端还是小端;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值