美文网首页
操作系统学习笔记

操作系统学习笔记

作者: 第四单元 | 来源:发表于2020-04-11 11:42 被阅读0次

    1.操作系统是什么?

    操作系统是一种软件,是用于连接应用程序和计算机硬件的软件。应用程序通过操作系统的提供的系统调用来与计算机硬件打交道。用户通过操作系统来使用计算机(命令、图形界面、应用程序)。操作系统负责管理计算机硬件资源,如CPU时间片的分配,内存,磁盘,文件和终端。

    2.学习操作系统学习什么?

    操作系统的启动过程.

    计算机通电启动后首先执行BIOS。BIOS会进行硬件检查磁盘,内存,CPU等,如果没有问题则开始将操作系统载入内存。载入后开始执行操作系统的代码。

    shell

    shell不断等待用户输入命令,接收到命令后进行执行。

    系统调用

    应用程序如何使用系统调用的。
    linux中分为用户态和内核态,内核态即为操作系统的代码和数据。用户态的程序不能访问内核态的代码和数据。需要通过系统调用来访问计算机资源等。系统调用具体通过int 0x80中断的方式进行。
    常见的系统调用


    image.png

    从两个方面学习操作系统

    一是进程:CPU如何进行进程调度,死锁问题,内存管理
    二是文件:IO管理,磁盘管理

    操作系统的发展

    单道批处理系统->多道批处理系统->分时系统,实时系统

    3.多进程图像

    操作系统的作用是管理计算机硬件。CPU是一种计算机硬件,所以也需要操作系统来管理。要管理CPU首先要知道CPU是如何工作的。CPU的工作方式是取指执行。

    那么最简单的管理CPU方式是直接将PC指向程序的起始位置,CPU开始取指执行,这样CPU就工作起来了。但当遇到IO操作时,CPU需要等待。由于IO操作比CPU运行速度慢几个数量级,导致CPU利用率下降。由此引入并发执行的概念。程序A执行IO操作时,CPU去执行程序2,进行程序切换,取指执行。这里便引入了进程的概念:进程是运行中的程序,在计算机系统用PCB描述。

    进程切换

    schedule() {
      pNew = getNext(ReadyQueue);  //选择要运行的进程,涉及“进程调度"算法
      switch_to(pCur,pNew);        //保存现场:复制cpu到pcbCur;准备运行:复制pNew到cpu
    }
    

    内存管理

    多个进程同时在内存中执行,如何做到不相互影响数据?
    地址空间分离,映射表

    相关文章

      网友评论

          本文标题:操作系统学习笔记

          本文链接:https://www.haomeiwen.com/subject/sihnaftx.html