首页 > 技术文章 > 操作系统基本概念

zhangweigang 2019-10-19 22:30 原文

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.进程与线程的同步与通信;

推荐阅读