zoukankan      html  css  js  c++  java
  • 宏观浅识操作系统

    这两天翻了翻操作系统,记下几点新认识

    1 以数据为核心看计算机结构

       cpu:处理数据

       内存:缓存数据,便宜cpu存取数据

       硬盘(代表I/O):持久化数据(表现数据)

       关系:

       1. cpu和内存:访问速度快,cpu通过系统总线能直接存取内存中的数据

       2. cpu和硬盘:不能直接访问,通过DMA来处理,整个流程如下:

           1、cpu发出读取硬盘数据指令,cpu将系统总线控制权限交给DMA控制器;
           2、DMA将数据从硬盘读入内存;
           3、cpu从DMA接管总线控制权;
           4、cpu向内存发出读取数据命令;
           5、cpu对数据进行运算处理,同时和内存进行必要的数据交换;
           6、运行结束后,如果有外设存取操作,CPU将结果数据发送到硬盘。

    2 操作系统中的几个抽象及原因

      (这里只写到一些问题,而没有叙述解决方案,question create reality)

      进程与线程:进程的产生原因是模拟并控制并发,产生线程的原因是1.系统调用时阻塞线程而不是阻塞整个程序2.并行实体共享同一个地址空间和所有可用数据.换个角度理解,进程用于把资源集中到一起,而线程则是在cpu上被调度执行的实体.

      地址空间和虚拟内存:为了运行多个程序,需要把程序先载入到内存,这里存在几个问题:

      1.如何让多个程序不访问相同的内存地址?(地址空间)

      2.如何让程序独立私有的本地地址重定位到内存地址?(MMU)

      3.如何运行内存超载的程序?(交换技术和虚拟地址)

      文件:文件的抽象是为了对硬盘信息更好的管理,比如存储和检索信息,只需要把文件看成一种地址空间即可

     

       

  • 相关阅读:
    如何提升Web前端性能?
    简述Linux开机启动流程
    教你玩转Linux系统目录结构
    FreeBSD虚拟机 VMware Tools 安装教程
    何为KVM克隆和快照
    Knockout 新版应用开发教程之Computed Observables
    Knockout 新版应用开发教程之Observable与computed
    前端MVC框架Backbone 1.1.0源码分析系列
    Knockout 新版应用开发教程之创建view models与监控属性
    看看国外的javascript题目,你能全部做对吗?
  • 原文地址:https://www.cnblogs.com/79home/p/2530415.html
Copyright © 2011-2022 走看看