操作系统学习_02(零基础学习)

7.操作系统的体系结构

     1.大内核(宏内核/单内核)和微内核

        1.什么是内核

     内核是操作系统最基本,最核心的部分.实现操作系统内核功能的那些程序就是内核程序

      2.什么叫大内核,什么叫微内核

     大内核:将一些主要功能模块都作为系统内核

     微内核:只有与硬件紧密相连的功能

 

     3.大内核和微内核的对比 

      结论:

              大内核: 主要模块的功能都在系统内核   微内核: 只把基本的功能保留在内核

                           高性能                                                 内核功能少,结构清晰,方便维护

                          内核代码太多,结构混乱不宜易维护       须在核心态和用户态频繁的切换,性能低     

 2 .分层结构,模块化,外核

8.操作系统的引导

   1.什么是操作系统的引导

        开机的时候,让操作系统运行起来

   2.磁盘里面有哪些相关数据

        1.刚买的磁盘里面是空的

        2.在磁盘里安装操作系统之后(磁盘会有的内容)

           里面的分区表:在这个磁盘中每个盘每个分区分别占用多大的空间,每个分区的地址范围

          c盘中还有引导记录PBR(因为里面安装了操作系统)

   3.操作系统的引导过程 

        1.首先我们知道如果操作系统要启动,则操作系统的数据一定放在主存中

        2.计算机的主存由ROM(我们平时sho)和RAM(运存)两个部分构成

            ROM 存储器是一种用于存储固定数据和程序代码的非易失性存储器,其中的数据和程序代码无法被修改,因此经常用于存储计算机的 BIOS、引导程序、固件、操作系统等。ROM 存储器通常比 RAM 存储器读取速度更快,但写入操作却不可行。

           RAM 存储器是一种易失性存储器,用于存储运行程序和数据,其中的数据和程序代码可以被读取、写入和修改。RAM 存储器中的数据和程序代码只有在电源处于开启状态时才能够存在,如果关闭电源,RAM 存储器中的数据和程序代码就会被清除。RAM 存储器通常比 ROM 存储器读取速度更慢,但写入操作可行,因此在计算机中被广泛应用。

       3.CPU从一个特定的主存地址开始,取指令,执行ROM中的引导程序(先进行硬件自检,再开机)

       4.将磁盘的第一块--主引导记录读入内存,执行磁盘引导程序,扫描分区表

       5.从活动分区(又称主分区,即安装了操作系统的分区)读入分区引导记录,执行其中的程序

       6.从根目录下找完完成的操作系统初始化程序(即启动管理器)并执行,完成"开始"的一系列动作

 9.虚拟机

    使用虚拟化技术,将一台物理机器虚拟化为多台虚VM),每个虚拟机器都可以独立运行一个操作系统

    同义术语:虚拟机管理程序/虚拟机监控程序/VMM/Hyperviosr

 1.   两类虚拟机

    第一类VMM:直接运行在硬件上

    第二类VMM:运行在宿主操作系统上

      2. 两类虚拟机管理程序的对比

 

10.进程的概念,组成,特征

      1.进程的概念

          程序:是静态的,就是个存放在磁盘里的可执行文件,就是一系列的指令集合

          进程:是动态的,是程序的一次执行过程(每一次程序的执行都会对应一个不同的进程)

    操作系统是如何区分同一个程序产生的不同进程呢?

    答:当进程被创建的时候,操作系统会为该进程分配一个唯一的,不重复的"身份证号"--PID.

     2.进程的组成--PCB,程序段,数据段

     PCB(进程块):是一个很重要的数据结构.当一个进程被创建时还会为其分配一些资源(内存,正在使用的I/O设备,正在使用的文件) 还要记录进程的运行情况(CPU使用时间,磁盘使用情况,网络流量使用情况等)这些信息都会被放在PCB中

     程序段:程序的代码(指令序列)

     数据段:运行过程中产生各种数据(如:程序中定义的变量)

   PCB是给操作系统用的.程序段,数据段是给自己用的

     进程是如何创建的

             (程序如何运行的)

       进程实体(进程映像)是进程某一时刻的状态 

  进程是进程实体的运行过程,是系统进行资源分配调度的一个独立单位

   (注意:PCB是进程存在的唯一标志!)

  3.进程的特征

    总结:

   11.进程的状态:  

      1.进程的几种状态

     就绪态指进程已经准备好执行,但需要等待CPU分配资源。在就绪态下,进程已经完成了所需的资源准备工作,就等待着操作系统将CPU时间片分配给它,进程处于可执行状态。

     运行态指进程正在执行操作系统分配给它的任务,此时进程使用CPU进行计算或IO操作。

     阻塞态指某个进程由于等待某种事件(如IO操作的完成)而暂停执行。此时CPU不再为该进程服务,进程暂停执行,直到所等待的事件发生才能继续执行。在阻塞状态下,进程被挂起,不再消耗CPU时间。

    2.进程的转化

     注意:一个进程不能由阻塞态直接转换为运行态,也不能由就绪态直接转换为阻塞态(因为进入阻塞态是进程主动请求的,必然需要进程运行时才能发出这种请求) 

   3.进程的组织

        1.链接方式(大多)

         2.索引方式

       总结:

 12.进程控制

     1.进程控制的基本概念

     1.概念:进程控制主要功能是对系统中所有进程实施有效的管理,它具有创建新进程,撤销已有的进程,实现进程状态的转换功能

     2.如何实现进程控制?

     答:用"原语"实现,原语是一种特殊的程序,它的执行具有原子性.也就是说,这段程序的运行必须一气呵成,不可中断

     3.为什么要一气呵成?

      答:如果不能一气呵成,就有可能导致操作系统中某些关键数据结构的信息不统一的情况,这会影响操作系统进行别的管理工作

    下面例子:

      4.如何实现原语的"原子性"

         可以用"关中断指令"和"开中断"指令这两个特权指令实现原子性

          你还记不记得我们上面曾说过,在核心态我们每执行一条程序,就会检查一下有没有中断处理程序.所以如何在规定的时间上不接收中断处理信号呢?

      2.进程控制相关的原语

          1.创建原语

        2.撤销原语

    3.阻塞原语和唤醒原语 ​(成对使用的)​

    4.切换原语

   总结: 

13.进程通信 

    什么是进程通信?

      答:进程通信(IPC)是指两个进程之间产生数据交互.

   为什么进程通信需要操作系统支持?

      答:进程是分配系统资源的单位(包括内存地址空间),因此各进程拥有的内存地址空间相互独立

为了保证安全,一个进程不能直接访问另一个进程的地址.所以需要操作系统来帮助他们完成通信.

 

     1.共享存储

 

     2.消息传递

       进程间数据交换以格式化的消息(Message)为单位.进程通过操作系统提供的"发送消息/接收消息"两个原语进行数据交换.

        两种通信方式:

           1.直接通信方式:

               2.间接通信方式:

 

      

     3.管道通信

   1. "管道"是一个特殊的共享文件,又名pipe文件.其实就是在内存中开辟一个大小固定的内存缓冲区

(这里可能有人会问,前面的共享储存不也是分配一块空间然后把数据放里,别人来读实现通信的吗?注意:这里是管道是由规则的必须先进先出(循环队列),而共享储存是没有顺序的)

    2.管道只能采用半双工通信,某一时间段内只能实现单向的传输.如果实现双向同时通信,则需要设置两个管道

    3.各进程要互斥地访问管道(由操作系统实现) 

    4.当管道写满时,写进程阻塞,直到读进程将管道中的数据取走,即可唤醒写进程

    5.当管道读空时,读进程阻塞,直到写进程往管道中写入数据,即可唤醒读进程

    6.管道中的数据一旦被读出,就彻底消失.因此当多个进程读同一个管道时,可能会出现错乱.对此通常有两种解决方案:1.一个管道允许多个写进程,一个读进程 2.允许多个写进程,多个读进程,但系统会让各个读进程轮流从管道中读数据

    4.总结:

   14. 线程,多线程模型 

          1.什么是线程,为什么要引入线程?

         线程是一个基本的CPU执行单元,也是程序执行流的最小单位,

         每个进程可以有多个线程,每个线程可以有多个不同的代码.

            引入线程之后,不仅进程之间可以并发,进程内的个线程之间也可以并发,从而进一步提升了系统的并发度,使得一个进程内也可以并发处理各种任务(如QQ视频,文字聊天,传文件)

          引入线程之后,进程只作为除CPU之外的系统资源的分配单元(如打印机,内存地址空间等都是分配给进程的)

      2. 引入线程机制后,有什么变化?

         3.线程的属性 

       4.线程的实现方式,多线程模型 

            1.用户级线程

          1.1线程的管理工作由谁来完成

    答:用户级线程由应用程序通过线程库实现,所有的县城管理工作都由应用程序负责(包括线程切换)

          1.2线程切换是否需要CPU变态?

    答:用户级线程中,线程切换可以在用户态下即可完成,无需操作系统干预

          1.3操作系统能否意识到用户线程的存在

    答:在用户看来,是由多个线程.但是在操作系统内核看来,并意识不到线程的存在

          1.4这种线程的实现方式有什么优缺点

   优点:用户级线程的切换在用户空间即可完成,不需要切换到核心态,线程的管理系统开销小,效率高

   缺点:当一个用户级线程被阻塞后,整个进程都会被阻塞,并发度不高.多个线程不可在多核处理机上并行运行 

    2.内核级线程

       1. 内核级线程的管理工作由操作系统内核完成

       2.线程调度,切换等工作都由内核负责,因此内核级线程的切换必然需要在核心态下才能完成

      3.操作系统会为每个内核级线程建立相应的TCB(线程控制块),通过TCB对线程进行管理."内核级线程"就是"从操作系统内核视角看能看到的线程"

      4.优缺点:

        优点:当一个线程被阻塞后,别的线程开可以继续执行,并发能力强.多线程可在多核处理机上并行执行

        缺点:一个用户进程会占用多个内核级线程,线程切换由操作系统内核完成,需要切换到核心态,因此线程管理成本高,开销大.

      1.一对一模型:

           一个用户级线程映射到一个内核级线程.每个用户线程有与用户级线程同数量的内核级线程

       优点:当一个线程被阻塞后,别的线程开可以继续执行,并发能力强.多线程可在多核处理机上并行执行

      缺点:一个用户进程会占用多个内核级线程,线程切换由操作系统内核完成,需要切换到核心态,因此线程管理成本高,开销大.

  2.多对一模型:

   多个用户级线程映射到一个内核级线程.且一个进程只被分配一个内核级线程

优点:用户级线程的切换在用户空间即可完成,不需要切换到核心态,线程的管理系统开销小,效率高

   缺点:当一个用户级线程被阻塞后,整个进程都会被阻塞,并发度不高.多个线程不可在多核处理机上并行运行 

(重点重点:操作系统只"看得见"内核级线程,因此只有内核级线程才是处理级分配的单位)

    3.多对多模型 

总结: 

感谢大家的观看!!!!!持续更新中   操作系统学习_03(零基础学习)点个关注不迷路 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我会一直陪着你

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值