春招准备(三)——操作系统知识

1、进程调度

  (周转时间=程序结束时间–开始服务时间,带权周转时间=周转时间/ 要求服务时间)

  • 先来先服务(FCFS):既可以作业调度,也用于进程调度;利于长作业(进程),不利于短作业(进程),所以适用于CPU繁忙性,不利于IO型繁忙。
  • 短作业(进程)优先调度算法:作业和进程都适用,对长作业不利,作业的长短是被估算出来的
  • 高优先权优先调度算法:为了照顾紧迫性作业,引入了最高优先权优先算法(FPF);适用于批处理、实时、进程调度,在进程调度总又分为抢占式/非抢占式优先权调度算法

2、进程通信的几种方式

  进程间通信主要包括管道, 系统IPC(包括消息队列,信号量,共享存储), SOCKET。

  •  管道(pie):半双工通信方式(两端只能有一个发送)数据只能单向流动,通常是在具有亲属关系的进程流动,常在父子进程之间使用。
  • 有名管道(namedpid):半双工通信方式但是他允许没有亲属关系的进程间通信
  • 信号 ( sinal ) : 信号是一种比较复杂的通信方式,用于通知接收进程某个事件已经发生。
  • 信号量(semophore):信号量是一个计数器,可以用来控制多个进程对共享资源的访问。它常作为一种锁机制,防止某进程正在访问共享资源时,其他进程也访问该资源。因此,主要作为进程间以及同一进程内不同线程之间的同步手段。
  • 消息队列(message queue):消息的队列是由消息的链表,存放在内核中并由消息队列标识符标识,克服了信号传递信息少,管道只能承载无格式字节流以及缓冲区大小受限制等缺点
  • 共享内存(shared memory) :共享内存就是映射一段能被其他进程所访问的内存,这段共享内存由一个进程创建,但多个进程都可以访问。共享内存是最快的 IPC
    方式,它是针对其他进程间通信方式运行效率低而专门设计的。它往往与其他通信机制,如信号量,配合使用,来实现进程间的同步和通信。

  • 套接字(socket):不同机器间的进程通信

3、linux常用命令

      Linux属于哪种类型的操作系统:多用户、多任务、多进程

  • 创建目录什么命令?创建文件?复制文件?mkdir;vi,vim,cat;cp
  • pwd: 显示当前所处目录
  • 查看ip地址:ifconfig
  • 权限:   chmod:改变文件或目录的访问权限;chown: 改变某个文件或目录的所有者和所属的组; chgrp: 改变文件或目录所属组
  • 如何查看当前进程?如何退出?pwd;exit

  • ls命令显示当前路径下的所有文件和文件夹:-a 全部文件   -d 只显示目录   -l   详细信息

4、产生死锁的四个必要条件

  • 互斥条件:一个资源一次只能被一个进程调用
  • 请求与保持条件:一个请求因请求资源而阻塞时,对已获得的资源不放
  • 不剥夺条件:进程已获得的资源,在未使用完之前,不能强行剥夺
  • 循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系

5、处理死锁的四种方式 

1)死锁预防

2)死锁避免

3)死锁检测

4)一种综合的死锁策略
所有的解决死锁的策略都有其优缺点,在不同的情况下使用不同的策略比将操作系统机制设计比只采用其中一种策略更有效。

把资源分成几组不同的资源类
为预防在资源类之间由于循环等待产生死锁,可使用线性排序策略
在一个资源类中,使用该类资源最适合的算法

6、Windows内存管理的方式(块式、页式、段式、段页式)

  • 块式:把主存分为一大块一大块的,平均浪费了50%的空间,但利于管理
  • 页式:把主存分为一页一页的,每一页的空间要比每一块的空间小很多,利用率比块式的高很多
  • 段式:把主存分为一段一段的,每一段的空间又要比一页一页的空间小很多,这种方法在空间利用率上又比页式管理高很多,但是也有另外一个缺点。一个程序片断可能会被分为几十段,这样很多时间就会被浪费在计算每一段的物理地址上
  • 段页式:结合了段式管理和页式管理的优点,将程序分为若干段,每个段分为若干页

7、操作系统的四个特性 

1)并发(concurrence)

并行性与并发性这两个概念是既相似又区别的两个概念。并行性是指两个或者多个事件在同一时刻发生,这是一个具有微观意义的概念,即在物理上这些事件是同时发生的;而并发性是指两个或者多个事件在同一时间的间隔内发生,它是一个较为宏观的概念。在多道程序环境下,并发性是指在一段时间内有多道程序在同时运行,但在单处理机的系统中,每一时刻仅能执行一道程序,故微观上这些程序是在交替执行的。

应当指出,通常的程序是静态实体,它们是不能并发执行的。为了使程序能并发执行,系统必须分别为每个程序建立进程。进程,又称任务,简单来说,是指在系统中能独立运行并作为资源分配的基本单位,它是一个活动的实体。多个进程之间可以并发执行和交换信息。一个进程在运行时需要运行时需要一定的资源,如cpu,存储空间,及i/o设备等。在操作系统中引入进程的目的是使程序能并发执行。
2)共享 (sharing)

所谓共享是指,系统中的资源可供内存中多个并发执行的进程共同使用。由于资源的属性不同,故多个进程对资源的共享方式也不同,可以分为:互斥共享方式和同时访问方式。

3)虚拟 (virtual)
是指通过技术把一个物理实体变成若干个逻辑上的对应物。在操作系统中虚拟的实现主要是通过分时的使用方法。显然,如果n是某一个物理设备所对应的虚拟逻辑设备数,则虚拟设备的速度必然是物理设备速度的1/n。

4)异步 (asynchronism)
在多道程序设计环境下,允许多个进程并发执行,由于资源等因素的限制,通常,进程的执行并非“一气呵成”,而是以“走走停停”的方式运行。内存中每个进程在何时执行,何时暂停,以怎样的方式向前推进,每道程序总共需要多少时间才能完成,都是不可预知的。或者说,进程是以一步的方式运行的。尽管如此,但只要运行环境相同,作业经过多次运行,都会获得完全相同的结果。

原文地址:https://www.cnblogs.com/9797ch/p/12298948.html