操作系统基础知识大全
计算机系统中的一个系统软件,它是这样一些程序模块的集合——它们管理和控制计算机系统中的软硬件资源,合理地组织计算机的工作流程,以便有效地利用这些资源为用户提供一个功能强大、使用方便和可扩展的工作环境,从而在计算机与其用户之间起到接口的作用。下面就让小编带你去看看操作系统基础知识大全吧,希望能帮助到大家!
操作系统基础知识笔记
一、操作系统相关概念
计算机软件:系统软件和应用软件。
计算机系统资源:硬件资源、软件资源。
硬件资源:中央处理器、存储器、输入、输出等物理设备。
软件资源:以文件形式保存到存储器上的程序和数据信息。
定义:有效地组织和管理系统的各种软/硬件资源,合理组织计算机系统工作流程,控制程序的执行,并给用户提供一个良好的环境和友好的接口。
操作系统作用:通过资源管理提高计算机系统的效率、改善人家界面提高良好的工作环境。
吞吐量:计算机在单位时间内处理工作的能力。
二、操作系统的特征与功能
操作系统的特征:并发性、共享性、虚拟性、随机性。
2.1、 操作系统的功能
1、进程管理:实际上是对处理机的执行时间进行管理,采用多道程序等技术将CPU的时间合理分配给每个任务。比如:进程控制、进程同步、进程通信、进程调度。
2、文件管理:主要有存储空间管理、目录管理、文件读写。
3、存储管理:对主存储器空间进行管理,主要包括存储空间分配回收、存储保护、地址映射、主存扩充等。
4、设备管理:对硬件设备的管理。包括分配、启动、完成、回收。
5、作业管理:包括任务、界面管理、人机交互、语音控制、虚拟现实等。
三、操作系统分类
1、批处理操作系统
分为单道批处理、多道批处理。
单道批处理:早期的操作系统,一次只有一个作业装入内存执行。作业由用户程序、数据和作业说明书组成。一个作业运行结束后,自动调入同批的下一个作业。
用路由器连接两台电脑
多道批处理:允许多个作业装入内存执行,在任意时刻,作业都处于开始和结束点之间。
多道批处理系统特点:多道、宏观上并行运行、微观上串行运行。
2、分时操作系统
分时操作系统是将CPU的工作划分为很短的时间片。轮流为各个终端的用户服务。
分时操作系统特点:多路性、独立性、交互性、及时性。
3、实时操作系统
实时操作系统对交互能力要求不高,要能对外来信息足够快的速度响应和处理。分为实时控制系统和实时信息处理系统。
实时控制系统:主要用于生产过程的自动控制,比如自动采集、飞机的自动驾驶等。
实时信息处理系统:主要是实时信息处理,比如飞机订票系统、情报检索系统等。
4、网络操作系统
网络操作系统使互联网能方便有效的共享网络资源,为网络用户提供各种服务软件和有关协议的几何。比如、文件传输、共享硬盘等。
网络操作系统分为如下三类:
张丹峰老婆
1、集中式:系统的基本单元由一台主机和若干台主机相连的终端构成,将多台主机连接处理形成网络。比如UNI__。
2、客户端/服务器模式:该模式分为客户端和服务器。服务器是网络控制的中心,向客户端提供多种服务,客户端主要是访问服务端的资源。
3、对等模式(P2P):相当于每一台客户端都可以给其他客户端提供资源服务。
5、分布式操作系统
分布式操作系统是由多个分散的计算机经连接而成的计算机系统,系统中的计算机无主次之分,任意两台计算机都可以交换信息。分布式操作系统能直接对各类资源进行动态分配和调度、任务划分、信息传输协调工作,为用户提供一个统一的界面、标准的接口,用户通过这一界面实现所需要的操作和使用系统资源。
6、微机操作系统
目前主流的操作系统有Linu__、MacOS、Windows。
7、嵌入式操作系统萨尔曼 汗
嵌入式操作系统运行在嵌入式智能芯片环境中,对整个智能芯片以及操作、控制、部件装置等资源进行统一协调、处理、指挥、控制。
嵌入式操作系统特点:微型化、可定制、实时性、可靠性、易移植性。
操作系统基础知识
一、概述
1. 操作系统基本特征
1. 并发赵又廷 阮经天
并发是指宏观上在一段时间内能同时运行多个程序,而并行则指同一时刻能运行多个指令。
并行需要硬件支持,如多流水线或者多处理器。
操作系统通过引入进程和线程,使得程序能够并发运行。
2. 共享
共享是指系统中的资源可以被多个并发进程共同使用。
有两种共享方式:互斥共享和同时共享。
互斥共享的资源称为临界资源,例如打印机等,在同一时间只允许一个进程访问,需要用同步机制来实现对临界资源的访问。
3. 虚拟
虚拟技术把一个物理实体转换为多个逻辑实体。
利用多道程序设计技术,让每个用户都觉得有一个计算机专门为他服务。
主要有两种虚拟技术:时分复用技术和空分复用技术。例如多个进程能在同一个处理器上
并发执行使用了时分复用技术,让每个进程轮流占有处理器,每次只执行一小个时间片并快速切换。
黄宝世4. 异步
异步指进程不是一次性执行完毕,而是走走停停,以不可知的速度向前推进。
但只要运行环境相同,OS需要保证程序运行的结果也要相同。
2. 操作系统基本功能
1. 进程管理
进程控制、进程同步、进程通信、死锁处理、处理机调度等。
2. 内存管理
内存分配、地址映射、内存保护与共享、虚拟内存等。
3. 文件管理
文件存储空间的管理、目录管理、文件读写管理和保护等。
4. 设备管理
完成用户的 I/O 请求,方便用户使用各种设备,并提高设备的利用率。
主要包括缓冲管理、设备分配、设备处理、虛拟设备等。
3. 系统调用
如果一个进程在用户态需要使用内核态的功能,就进行系统调用从而陷入内核,由操作系统代为完成。
4. 大内核和微内核
1. 大内核
大内核是将操作系统功能作为一个紧密结合的整体放到内核。
由于各模块共享信息,因此有很高的性能。
2. 微内核
由于操作系统不断复杂,因此将一部分操作系统功能移出内核,从而降低内核的复杂性。移出的部分根据分层的原则划分成若干服务,相互独立。
在微内核结构下,操作系统被划分成小的、定义良好的模块,只有微内核这一个模块运行在内核态,其余模块运行在用户态。
因为需要频繁地在用户态和核心态之间进行切换,所以会有一定的性能损失。放开我北鼻雪儿
5. 中断分类
1. 外中断
由 CPU 执行指令以外的事件引起,如 I/O 完成中断,表示设备输入/输出处理已经完成,处理器能够发送下一个输入/输出请求。此外还有时钟中断、控制台中断等。
2. 异常
由 CPU 执行指令的内部事件引起,如非法操作码、地址越界、算术溢出等。
6. 什么是堆和栈?说一下堆栈都存储哪些数据?
栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。
堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。
数据结构中这两个完全就不放一块来讲,数据结构中栈和队列才是好基友,我想新手也很容易区分。
我想需要区分的情况肯定不是在数据结构话题下,而大多是在 OS 关于不同对象的内存分配这块上。
简单讲的话,在 C 语言中:
int a[N]; // go on a stackint__ a = (int __)malloc(sizeof(int) __ N); // go on a heap
7. 如何理解分布式锁?
分布式锁,是控制分布式系统之间同步访问共享资源的一种方式。在分布式系统中,常常需要协调他们的动作。如果不同的系统或是同一个系统的不同主机之间共享了一个或一组资源,那么访问这些资源的时候,往往需要互斥来防止彼此干扰来保证一致性,在这种情况下,便需要使用到分布式锁。
二、进程管理
1. 进程与线程
1. 进程
进程是资源分配的基本单位,用来管理资源(例如:内存,文件,网络等资源)
进程控制块 (Process Control Block, PCB) 描述进程的基本信息和运行状态,所谓的创建进程和撤销进程,都是指对 PCB 的操作。(PCB是描述进程的数据结构)
下图显示了 4 个程序创建了 4 个进程,这 4 个进程可以并发地执行。
2. 线程
线程是独立调度的基本单位。
一个进程中可以有多个线程,它们共享进程资源。
QQ 和浏览器是两个进程,浏览器进程里面有很多线程,例如 HTTP 请求线程、事件响应线程、渲染线程等等,线程的并发执行使得在浏览器中点击一个新链接从而发起 HTTP 请求时,浏览器还可以响应用户的其它事件。