操作系统基本概念
1.操作系统是什么?
是配置在计算机硬件的第一层软件,是对硬件系统的首次扩充;
2.操作系统的作用与功能?
作用:控制管理计算机的全部硬件资源,合理组织内部各部件协调工作,为用户提供和操作编写界面的集合;
功能:处理机管理、存储器管理、设备管理和文件管理;
3.操作系统的发展?
4.并发
在单位时间内可以处理事情的能力, 8个窗口,30秒打饭,并发能力是每分钟16
5.并行
同一时刻,可以处理事情的能力,8个窗口,8个人打饭,并行能力是8
6.进程
为了是程序并发的执行,并且可以对并发执行的程序加以控制和描述,就引入“进程”的概念。
进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位;是系统中的并发执行的单位;是资源分配的最小单位;
有自己独立的地址空间;目的:调高提高系统吞吐量;
7.线程
是程序执行的最小单位;是共享进程的数据,使用相同的地址空间;
CPU使用的基本单元,由线程ID、程序计数器、寄存器集合和栈组成;
线程有就绪、阻塞和运行三种基本状态;
区分进程与线程的区别:
1.调度:线程是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。
2.并发性:进程和线程都可以并发执行,不同进程也可以并发执行,
3.资源:进程拥有系统资源,线程否--->访问进程所属的资源,即可与同属一个进程的其它线程共享进程所拥有的全部资源;
4.系统开销:进程切换--->CPU资源;线程的切换--->寄存器;即地址空间;通过 CPU 的多路复用;
8.进程与程序
进程和程序是两个不同的概念,进程具有程序所没有的PCB结构,程序没有建立PCB是不能参与并发执行的,总的来说,主要区别在于进程由PCB块,程序没有;
进程:是系统进行资源分配和调度的一个独立单位。其是动态的(产生->执行->消亡),可单独一个进程运行,也可以多个进程并发运行(参考百米赛跑,每个人就是一个进程),且运行方式是异步的。
程序:程序是一组有序指令的集合。是静态的,存放在某种介质上,不具有活动的含义,实现方式,
比较的方面 | 程序 | 进程 |
---|---|---|
基本概念 | 程序是一组指令的集合 | 执行中的程序,就叫做进程 |
性质 | 被动(静态) | 活动(动态的) |
存活期 | 长久(如果不从磁盘删除它) | 暂时(在进程完毕后终止) |
需要的资源 | 存储器资源 | CPU,内存,磁盘,I/O等资源 |
程序和进程主要区别:
程序是要执行的一组明确的有序操作。另一方面,正在执行的程序的实例是一个进程。
程序的本质是被动的,因为它在执行之前什么也不做,而进程本质上是动态的或活动的,因为它是执行程序和执行特定操作的实例。
程序具有更长的使用寿命,因为它存储在磁盘中,直到它不会被手动删除,而进程的生命周期较短且有限,因为它在进程完成后终止。
在进程中,资源需求要高得多; 它可能需要处理,内存,I / O资源才能成功执行。相反,程序只需要磁盘来存储
9.并发与并行那个效率高?
并行,一对一处理;
10.多个CPU>=多个线程
采用并行;
11.多个CPU<=多个线程
采用并发
12.运行计算
1MB 1024*1024 =0---1048575
补充:
1.栈与堆的概念:
栈:是线程独有的,栈在程序开始时候初始化,每一个线程的栈是独立的,栈的空间在高级程序的语言里不需要分配和释放;
堆:是在进程运行时动态分配的内存;大家共有的空间,分为全局堆和局部堆,全局堆:没有分配的空间,局部堆:用户分配的空间;
操作系统的基本共性:并发、共享、虚拟和异步;
并发
引入进程;引入线程;时间片轮转程度调用算法;
共享
互斥共性方式:在一段时间内只允许一个进程访问的资源成为临界资源或独占资源。
同事访问方式:允许一段时间内有多个进程同时对它们进行访问。
虚拟
时分复用技术:利用处理机的空闲时间运行其他程序,提高处理机的利用率。
空分复用技术:利用储存器的空闲时间存放其他程序,提高内存的利用率。
异步
进程已不可预知的速度向前推进。
2.进程实体:程序段、相关数据段和PCB三部分构成了进程映像;进程映像是静态的,进程则是动态的;
3.进程表:内存表、设备表、文件表、管理进程表;
4.进程控制块(PCB):为了使参与并发执行的程序能独立的运行,必须为之配置一个专门的数据结构-----task_struct;进程的唯一标志—PCB;
5.Linux 的系统调用主要有以下这些:
进程控制 fork(); exit(); wait();
进程通信 pipe(); shmget(); mmap();
文件操作 open(); read(); write();
设备操作 ioctl(); read(); write();
信息维护 getpid(); alarm(); sleep();
6.进程状态:创建、就绪、阻塞、执行、终止;
7.进程同步:控制多个进程按一定顺序执行;
8.进程通信:进程之间的信息交换;
9.进程制约关系:间接相互制约和直接相互制约;
10.临界资源和临界区:
11.信号量:计数器,用于对多个进程提供提供对共享数据对象的访问!
车位-->资源、看门人-->信号量、车-->线程;
私有:OS不知道存在;
共有:知道;进行管理;
12.进程通信的类型:
共享存储器系统()
消息传递系统(以格式化的消息为单位)message ----->报文;消息缓冲对列的通信;
通信方式:直接和间接(管道通信系统)限制条件变量的约束;
14.实验内容:(经典进程同步)
哲学家进餐问题(解决死锁发生);
读者---写着;
15.操作系统多任务:在同一时刻运行多个程序的能力;
一般多任务:一个程序同时执行多个任务;
线程库:为应用程序员提供了创建和管理线程的API;
程序运行时可以向操作系统要额外的堆,运行完成后必须释放,否则就会内存泄漏;
第二章总结:
1.程序;2.进程VS线程;3.PCB;4.进程与线程的同步与通信;