操作系统


  1. 计算机系统的层次结构,操作系统也是软件。
    操作系统笔记——简易版

  2. 并行和并发

    并行是指两个或者多个事件在同一时刻同时发生,无论宏观还是微观都是。2个cpu,执行2个线程,各一个。

    并发是指两个或者多个事件,在宏观上的某段时间内是同时发生的,但是在微观上是交替发生的,即,某一时刻,只有一个事件发生。比如,在1核cpu执行2个线程。

  3. 分时操作系统,就是一时间片为单位,轮流执行各项服务,比如常用的windows。但分时不能优先处理用户控制的紧急任务。那就有实时操作系统,就是要在严格的时限内完成某项事件,比如导弹系统。

  4. 指令,是处理器(cpu)能识别、执行的最基本命令。特权指令如:内存清零指令,分配资源等,不允许用户程序使用。非特权指令:加法指令等。

    为防止用户程序使用特权指令,为了安全,用户态下只能使用非特权指令,核心态下可以使用全部指令

  5. CPU(处理器、处理机)有2种状态,目态(用户态),管态(特权态、系统态、内核态或者核心态)。当CPU处于用户态时,不允许执行特权指令;当CPU处于核心态时,可执行包括特权指令在内的一切机器指令。

    挂起线程或者唤醒线程CPU要从用户态转换到内核态,即切换线程或者分配资源,都是cpu在内核态才能完成的。

    cpu处于什么态是根据程序状态字寄存器判断的。

    一些内核程序是操作系统运行所必需的程序。如时钟管理、中断处理、原语等。要不要橙色部分如进程管理可以分为大内核和微内核。

  6. 中断,用户态到核心态的唯一途径。核心态到用户态只需要设置一个状态的标志位,程序状态字寄存器。

    比如一个线程A的cpu时间片用完了,那cpu会收到一个中断信号,此时就会切换到核心态,该中断信号是说时间片已经用完了,线程A回到就绪状态,然后cpu会给下一个线程B时间片,并切换到用户态来执行这个新的线程B。在B执行过程中,要请求输出打印机,则会发出内中断信号给cpu,cpu就会切换到核心态(此时B进入阻塞状态),对中断信号进行处理,要求打印机操作。然后分配时间片给其他线程C,若打印机执行完成,会发送中断信号给CPU,CPU切换到核心态处理中断信号,中断信号是资源操作完成,则让线程B进入就绪状态,然后分配时间片给下一个任一线程

    总体来说,不同的中断信号,cpu要做不同的处理。而一般进程、线程切换,分配IO设备都是需要特权指令的。所以cpu要进入核心态对中断信号进行处理。

    中断可以为,io操作,强制终止,整数除0等。

  7. 进程和线程

    从表象来看是一个运行的程序,比如打开一次记事本软件就会有一个进程出现,打开任务管理器就可以看到程序对应进程在运行,程序是一个静态的概念,而进程是一个动态的概念。

    从定义来说,在还没有线程的时候,进程是系统进行资源分配和调度的基本单位,有了线程之后,系统的调度的基本单位就是线程了,线程也就是cpu执行流的最小单位,而进程则是系统进行资源分配的基本单位。

    从上面我们可以得出以下几点:

    第一,进程是系统分配资源的基本单元,线程是调用的基本单位,进程是动态的概念,程序是静态概念。

    第二,进程包含了一个或者多个线程,也就是说现有进程才有线程。

    第三,系统资源是分配给进程的,而线程们共享这些系统资源,共享方式就是共享内存。

    第四,进程间的切换比线程之间的切换更加占用资源。

    还有其他的,比如,进程的组成,进程的通信,进程的调度。线程分为2种等

  8. 进程的组成,PCB进程控制块,程序段和数据段。

  9. 进程通信,共享存储,管道通信,消息传递。

  10. 进程调度,先来先服务,最短作业有限,时间片调度、优先级调度。

  11. 线程:可以分为用户级线程(协程)和内核级线程,有线程id,TCB。

    一个qq进程,可以同时qq视频和发送文件,则这2个事情就是分别对应一个线程在处理。

    用户级线程(协程)是更轻量级的线程,正如一个进程可以拥有多个线程一样,一个线程也可以拥有多个协程。

    它的状态和控制是由应用程序控制的,对操作系统的内核来说是透明的。这样带来的好处就是性能得到了很大的提升,不会像核心态线程切换那样消耗资源。

    用户级线程(协程)和内核级线程,对应关系是m对n,n<=m。即1对1,1对多,多对多。

    内核级线程才是处理机cpu处理调度的单位。

  12. 管程:用于管理进程间共享某些资源方式。实现了在一个时间点,最多只有一个线程在执行管程的某个子程序。

总结:以上是操作系统简单的笔记,后续会增加内存,cpu,磁盘等内容的笔记。
【完】


正在去BAT的路上修行

相关文章: