这里只做一些简单的记录,
操作系统应该具有以下几个方面的功能:处理机管理,存储器管理、设备管理和文件管理
近似的说,多线程允许CPU保持两个不同的线程状态并且在纳秒级的时间完成切换。线程是一种轻量级进程,多线程不会提供真正的并行处理。在一个时刻只有一个进程在运行。
单 CPU 多线程提供的是并发能力;而多 CPU 则可以提供并行能力。
多核指的是什么? 多核是指在一枚处理器(processor)中集成两个或多个完整的计算引擎。核跟CPU的关系是:核属于CPU的一部分。
处理机的分配和运行都以进程(或线程)为基本单位???
而且许多库函数都会使用系统调用来实现功能,因为使用系统调用时,需要上下文的切换以及状态的转换(由用户态转向核心态) 。?
- 用户自编程序运行在用户态,操作系统内核程序运行在核心态
- 一些与硬件关联较紧密的模块,如时钟管理、中断处理、设备驱动等处于最低层。其次是运行频率较高的程序,如进程管理、存储器管理和设备管理等。这两部分内容构成了操作系统的内核,这部分内容的指令操作工作在核心态。
- 内核态和用户态的区别:内核态---->CPU可以访问内存所有数据, 包括外围设备, 例如硬盘, 网卡. CPU也可以将自己从一个程序切换到另一个程序
—>用户态: 只能受限的访问内存, 且不允许访问外围设备. 占用CPU的能力被剥夺, CPU资源可以被其他程序获取 - 特权指令和非特权指令:所谓的特权指令指的是计算机不允许用户直接使用的指令
- 大多数操作系统内核包括四个方面的内容:1.时钟管理 2.中断机制 3.原语 4.系统控制的数据结构及处理,为了实现有效的管理,系统需要一些基本的操作,常见的操作有以下三种1)进程管理 2)存储器管理 3)设备管理
- 什么是系统调用? 系统调用就是用户在程序中调用操作系统所提供的一些子功能,通过系统调用,可以使用户态运行的进程与硬件设备进行交互,是操作系统留给应用程序的一个接口。用户进程需要发生系统调用时,内核将调用内核相关函数来实现,,用户程序不能直接调用这些函数,这些函数运行在内核态,CPU通过软中断切换到内核态开始执行内核系统调用函数。
- 用户态->系统调用->内核态->返回用户态
- 操作系统的体系结构:大内核和微内核。大内核系统将操作系统的主要功能模块都作为一个紧密联系的整体运行在核心态,从而为应用提供高性能的系统服务。微内核结构的最大问题是:需要在内核态和用户态反复切换?
当然,像Word这种复杂的进程可以有多个线程,多个线程可以同时执行,多线程的执行方式和多进程是一样的,也是由操作系统在多个线程之间快速切换,让每个线程都短暂地交替运行,看起来就像同时执行一样。当然,真正地同时执行多线程需要多核CPU才可能实现。