精华内容
下载资源
问答
  • 内容包括了信号与系统这门课程的重要知识点,概念以及公式集总 很多的知识点的解说直接考题挂钩 可能也有疏忽吧,毕竟我不可能做完所有的题目 总而言之,还是很花了一点功夫 希望各位想学好这门课程的人都能够取得...
  • 信号与系统 重难点概括 知识点总结 信号与系统 重难点概括 知识点总结
  • 信号与系统》考研笔记及知识点,电子信息工程和通信工程专业考研都可以用,学硕和专硕都可以看,帮助很大
  • 信号与线性系统分析知识点.doc
  • 计算机操作系统核心知识点总结&面试笔试要点

    万次阅读 多人点赞 2019-08-14 22:00:41
    操作系统之基础篇 一、 操作系统概述  1. 操作系统的演进   无操作系统:人工操作,用户独占,CPU等待人工操作,资源利用率很低。   批处理系统:批量输入任务,无需等待人工操作,资源利用率提升,提出多道...

    操作系统之基础篇

    一、 操作系统概述

    1. 操作系统的演进
      无操作系统:人工操作,用户独占,CPU等待人工操作,资源利用率很低。
      批处理系统:批量输入任务,无需等待人工操作,资源利用率提升,提出多道程序设计。
      分时系统:人-机交互,多用户共享,资源利用率提升,及时调试程序。
      关于多道程序设计:是指在计算机内存中同时存放多个程序,多道程序在计算机的管理程序之下相互穿插运行。
    2. 操作系统的定义与目标
      定义:管理硬件,提供用户交互的软件系统。
      目标:方便性,有效性(提高系统资源的利用率、提高系统的吞吐量),可扩充性,开放性。
    3. 操作系统的基本功能
       统一管理计算机资源:处理器资源,IO设备资源,存储器资源,文件资源…
      实现了对计算机资源的抽象:IO设备管理软件提供读写接口,文件管理软件提供操作文件接口…
      提供了用户与计算机之间的接口:图像窗口形式,命令形式,系统调用形式…
    (6-2-1154)
     4. 操作系统的基本特性
      a.并发性
       并行:指两个或多个事件可以在
    同一个时刻
    发生;
       并发:指两个或多个事件可以在同一个时间间隔发生。
    (6-2-1619)
      b.共享性:操作系统的中资源可供多个并发的程序共同使用,这种形式称之为资源共享
       互斥共享:当资源被程序占用时,其它想使用的程序只能等待。
       同时访问:某种资源并发的被多个程序访问。
       c.虚拟性:表现为把一个物理实体转变为若干个逻辑实体
       时分复用技术:资源在时间上进行复用,不同程序并发使用,多道程序分时使用计算机的硬件资源,提高资源的利用率。
       空分复用技术:用来实现虚拟磁盘(物理磁盘虚拟为逻辑磁盘,电脑上的C盘、D盘等)、虚拟内存(在逻辑上扩大程序的存储容量)等,提高资源的利用率,提高编程效率。
      d.异步性:在多道程序环境下,允许多个进程并发执行,但由于资源等因素的限制,使进程的执行以“停停走走”的方式运行,而且每个进程执行的情况(运行、暂停、速度、完成)也是未知的。
    二、进程管理
    1. 进程实体
      a.为什么需要进程
       ·进程是系统进行资源分配和调度的基本单位;
       ·进程作为程序独立运行的载体保障程序正常执行;
       ·进程的存在使得操作系统资源的利用率大幅提升。
      b.进程控制块(PCB):用于描述和控制进程运行的通用数据结构,记录进程当前状态和控制进程运行的全部信息。
      c.进程(Process)与线程(Thread):
       线程:操作系统进行运行调度的最小单位。
       进程:系统进行资源分配和调度的基本单位。
       区别与联系:一个进程可以有一个或多个线程;线程包含在进程之中,是进程中实际运行工作的单位;进程的线程共享进程资源;一个进程可以并发多个线程,每个线程执行不同的任务。
    (6-3-1300)
    2. 进程的五状态模型
      就绪状态:其它资源(进程控制块、内存、栈空间、堆空间等)都准备好、只差CPU的状态。
      执行状态:进程获得CPU,其程序正在执行。
      阻塞状态:进程因某种原因放弃CPU的状态。
      创建状态:创建进程时拥有PCB但其它资源尚未就绪。
      终止状态:进程结束由系统清理或者归还PCB的状态。
    (6-4-0839)
    3.进程同步
      a.生产者-消费者问题:有一群生产者进程在生产产品,并将这些产品提供给消费者进程进行消费,生产者进程和消费者进程可以并发执行,在两者之间设置了一个具有n个缓冲区的缓冲池,生产者进程需要将所生产的产品放到缓冲区中(+1操作),消费者进程可以从缓冲区取走产品消费(-1操作)。
    (6-5-0207)
       产生问题:当两者并发执行时可能出差错,如下图:
    (6-5-0627)
       当执行生产者+1和消费者-1操作之后,缓冲区的值从10变为了11
       程序实例–>https://blog.csdn.net/huanglei305/article/details/99621301
      b.哲学家进餐问题:有5个哲学家,他们的生活方式是交替的思考和进餐,哲学家们共同使用一张圆桌,分别坐在5张椅子上,圆桌上有5只碗和5只筷子。平时哲学家们只进行思考,饥饿时则试图取靠近他们的左右两只筷子,只有两只筷子都被拿到的时候才能进餐,否则等待,进餐完毕后,放下左右筷子进行思考。
    (6-5-1110)
       产生问题:(6-5-1238)
      c.进程同步的作用对竞争资源在多进程间进行使用次序的协调,使得并发执行的多个进程之间可以有效使用资源和相互合作。
      d.进程间同步的四原则
       空闲让进:资源无占用,允许使用;
       忙则等待:资源被占用,请求进程等待;
       有限等待:保证有限等待时间能够使用资源;
       让权等待:等待时,进程需要让出CPU。
      e.进程同步的方法(重要,后面详细讲解):消息队列,共享存储,信号量
      f.线程同步的方法(重要,后面详细讲解):互斥量,读写锁,自旋锁,条件变量
    4. Linux的进程管理
      a.进程的类型
       前台进程:具有终端,可以和用户交互;
       后台进程:基本不和用户交互,优先级比前台进程低;
       守护进程:特殊的后台进程,在系统引导时启动,一直运行直到系统关闭,如crond、sshd、httpd、mysqld…
      b.进程的标记
       进程ID:非负整数,进程的唯一标记,每个进程拥有不同的ID;
       进程的状态标记:R表示进程处于运行状态,S表示进程处于睡眠状态…
      c.操作Linux进程的相关命令
       ps命令:列出当前的进程,结合-aux可以打印进程的详细信息(ps -aux);
       top命令:查看所有进程的状态;
       kill命令:给进程发送信号。
    三、作业管理
    1.进程调度
      定义:指计算机通过决策决定哪个就绪进程可以获得CPU使用权
      方法:
       非抢占式调度:处理器一旦分配给某个进程,就让该进程一直使用下去,直到进程完成工作或IO阻塞才会让出处理器。
       抢占式调度:允许调度程序以一定的策略暂停当前运行地进程
    (6-7-0636)
      步骤:
       保留旧进程的运行信息,请出旧进程(收拾包袱);
       选择新进程,准备运行环境并分配CPU。
      a.三个重要的机制:
       就绪队列的排队机制:为了提高进程调度的效率,将就绪进程按照一定的方式排成队列,以便调度程序可以最快找到就绪进程。
       选择运行进程的委派机制:调度程序以一定的策略,选择就绪进程,将CPU资源分配给它。
       新老进程的上下文切换机制:保存当前进程的上下文信息,装入被委派执行进程的运行上下文。
      b.进程调度算法
       先来先服务算法:按照在就绪队列中的先后顺序执行。
       短进程优先调度算法:优先选择就绪队列中估计运行时间最短的进程,不利于长作业进程的执行
       高优先权优先调度算法:进程附带优先权,优先选择权重高的进程,可以使得紧迫的任务优先处理
       时间片轮转调度算法:按照FIFO的原则排列就绪进程,每次从队列头部取出待执行进程,分配一个时间片执行,是相对公平的调度算法,但是不能保证就是响应用户
    2.死锁:是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。 此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。
      a.死锁的产生:竞争资源(共享资源数量不满足各进程需求)、进程调度顺序不当,如下图,当调度顺序为A->B->C->D时会产生死锁,但改为A->D->B->C则不会产生。
    (6-8-0519)
      b.死锁的四个必要条件:
       互斥条件:进程对资源的使用是排他性使用,某资源只能由一个进程使用,其它进程需要使用只能等待。
       请求保持条件:进程至少保持一个资源,又提出新的资源请求,新资源被占用,请求被阻塞,被阻塞的进程不释放自己保持的资源。
       不可剥夺条件:进程获得的资源在未完成使用前不能被剥夺(包括OS),只能由进程自身释放。
       环路等待条件:发生死锁时,必然存在进程-资源环形链.
      c.死锁的处理
       预防死锁的方法:破坏四个必要条件的中一个或多个。
        破坏请求保持条件:系统规定进程运行之前,一次性申请所有需要的资源。
        破坏不可剥夺条件:当一个进程请求新的资源得不到满足时,必须释放占有的资源。
        破坏环路等待条件:可用资源线性排序,申请必须按照需要递增申请。
      银行家算法:客户申请的贷款是有限的,每次申请需要申明最大资金量,银行家在能够满足贷款时,都应该给用户贷款,客户在使用贷款后,能够及时归还贷款。
      具体请移步–>https://blog.csdn.net/huanglei305/article/details/99637605
    四、存储管理
    1.内存分配与回收
      内存分配的过程:单一连续分配、固定分区分配、动态分区分配(根据实际需要,动态的分配内存)。
      动态分区分配算法:
       首次适应算法:分配内存时,从开始顺序查找适合内存区,若无合适内存区,则分配失败。
       最佳适应算法:要求空闲区链表按照容量大小排序,遍历以找到最佳适合的空闲区。
       快速适应算法:要求有多个空闲区链表,每个空闲区链表存储一种容量的空闲区。
      内存回收的过程:

    2.段页式存储管理
      页式存储管理:将进程逻辑空间等分成若干大小的页面,相应的把物理内存空间分成与页面大小的物理块,以页面为单位把进程空间装进物理内存中分散的物理块。
      段式存储管理:将进程逻辑空间分成若干段(不等分),段的长度由连续逻辑的长度决定。
      两者相比:(6-10-1022)
      段页式存储管理:现将逻辑空间按照段式管理分成若干段,再将内存空间按照页式管理分成若干页,分页可以有效提高内存利用率分段可以更好的满足用户需求
      三者分配内存之后的对比:
    在这里插入图片描述
    3.虚拟内存
      概述:实际是对物理内存的扩充,速度接近于内存,成本接近于辅存。
      局部性原理:指CPU访问存储器时,无论是存取指令还是存取数据,所访问的存储单元都趋于聚集在一个较小的连续区域中
      虚拟内存的置换算法:先进先出(FIFO)、最不经常使用(LFU)、最近最少使用(LRU)
    4.Linux的存储管理
      Buddy内存管理算法:为解决内存外碎片的问题,算法基于计算机处理二进制的优势具有极高的效率。
      Linux交换空间:交换空间(Swap)是磁盘的一个分区,Linux内存满时,会把一些内存交换至Swap空间,Swap空间是初始化系统时配置的。
      Swap空间与虚拟内存的对比:(6-12-1533)
    五、文件管理
    1.文件管理概述
      a.文件的逻辑结构:
       逻辑结构的文件类型:有结构文件(文本文件,文档,媒体文件)、无结构文件(二进制文件、链接库)。
       顺序文件:按顺序放在存储介质中的文件,在逻辑文件当中存储效率最高,但不适合存储可变长文件。
       索引文件:为解决可变长文件存储而发明,需要配合索引表存储。
      b.辅存的存储空间分配:
       辅存的分配方式:连续分配(读取文件容易,速度快)、链接分配(隐式链接和显式链接)、索引分配
       辅存的存储空间管理:
      c.目录管理:
       目录树:使得任何文件或目录都有唯一的路径。
    2.Linux文件的基本操作
      a.Linux目录:Linux一切皆文件。
    (6-14-0415)
    (6-14-0504)
      b.Linux文件常用操作:
       (目录/文件)创建、删除、读取、写入
      c.Linux文件类型:
    在这里插入图片描述
    3.Linux的文件系统
       文件系统概览:FAT、NTFS(对FAT进行改进)、EXT2/3/4(扩展文件系统,Linux的文件系统)
       EXt文件系统:(6-15-0455)
    六、设备管理
    1.广义的IO设备:
       按照使用特性分类:存储设备(内存、磁盘、U盘)和交互IO设备(键盘、显示器、鼠标)
       按照信息交换分类:块设备(磁盘、SD卡)和字符设备(打印机、shell终端)
       按照设备共享属性分类:独占设备,共享设备,虚拟设备
       按照传输速率分类:低速设备,高速设备
    2.IO设备的缓冲区:减少CPU处理IO请求的频率,提高CPU与IO设备之间的并行性。
    3.SPOOLing技术:虚拟设备技术,利用高速共享设备将低速的独享设备模拟为高速的共享设备,逻辑上,系统为每一个用户都分配了一台独立的高速独享设备。

    操作系统之提升篇(重点)

    一、线程同步的方法
    1.互斥锁
      互斥锁是最简单的线程同步的方法,也称为互斥量,处于两态之一的变量:解锁和加锁,两个状态可以保证资源访问的串行。
    (7-2-0103)
      原子性:指一系列操作不可被中断的特性,要么全部执行完成,要么全部没有执行。
    2.自旋锁
      自旋锁是一种多线程同步的变量,使用自旋锁的线程会反复检查锁变量是否可用,自旋锁不会让出CPU,是一种忙等待状态,即死循环等待锁被释放
      特点:避免了进程或者线程上下文切换的开销,但是不适合在单核CPU使用
    (7-3-0126)
    3.读写锁
      是一种特殊的自旋锁,允许多个读操作同时访问资源以提高读性能,但是对写操作是互斥的,即对多读少写的操作效率提升很显著。
    (7-4-0355)
    4.条件变量
      是一种相对比较复杂的线程同步方法,条件变量允许线程睡眠,直到满足某种条件,当满足条件时,可以给该线程信号通知唤醒
      例如,在生产者-消费者问题当中,规定当缓冲区小于等于时,不允许消费者消费,消费者必须等待;缓冲区满时,不允许生产者往缓冲区生产,生产者必须等待;即当生产者生产一个产品时,唤醒可能等待的消费者,当消费者消费一个产品时,唤醒可能等待的生产者。
    5.线程同步方法总结
      4种线程同步方法对比:
    在这里插入图片描述
    二、进程同步
    1.使用fork系统调用创建进程
      使用fork系统调用无参数,fork会返回两次,分别返回子进程id和0,返回子进程id的是父进程,返回0的是子进程。
    2.共享内存
      在某种程度上,多进程是共同使用物理内存的,但是由于操作系统的进程管理,进程间的内存空间是独立的,因此进程默认是不能访问进程空间之外的内存空间的
      共享存储允许不相关的进程访问同一片物理内存,共享内存是两个进程之间共享和传递数据最快的方式,但是共享内存未提供同步机制,所以需要借助其它机制管理访问。即共享内存是高性能后台开发中最常用的进程同步方式。
    (7-8-0259)
    3.Unix域套接字
      域套接字是一种高级的进程间通信的方法,可以用于同一机器进程间通信。
      套接字(socket):为网络通信中使用的术语。
      Unix系统提供的域套接字提供了网络套接字类似的功能,如Nfinx、uWSGI等。
      服务端和客户端分别使用Unix域套接字的过程:
    (7-9-0247)

    操作系统之实践篇

    实现支持异步任务的线程池
    关于线程池
     线程池:线程池是存放多个线程的容器,CPU调度线程执行后不会销毁线程,将线程放回线程池重新利用。
    使用线程池的原因:
      1.线程是稀缺资源 ,不应该频繁创建和销毁;
      2.架构解耦,业务创建和业务处理解耦,更加优雅;
      3.线程池是使用线程的最佳实践。
    1.实现线程安全的队列Queue
     队列:用于存放多个元素,是存放各种元素的“池”。
     实现的基本功能:获取当前队列元素数量,往队列放入元素,往队列取出元素。
     注意:队列可能有多个线程同时操作,因此需要保证线程安全,如下两种情况:
    在这里插入图片描述
     具体实现:https://blog.csdn.net/huanglei305/article/details/99701518
    2.实现基本任务对象Task
     任务处理逻辑:
      实现的基本功能:任务参数,任务唯一标记(UUID),任务具体的执行逻辑
     具体实现:https://blog.csdn.net/huanglei305/article/details/99701991
    4.实现任务处理线程ProcessThread
     任务处理线程需要不断地从任务队列里取任务执行,任务处理线程需要有一个标记,标记线程什么时候应该停止。
     实现的基本功能:基本属性(任务队列、标记),线程执行的逻辑(run),线程停止(stop)。
    5.实现任务处理线程池Pool
     存放多个任务处理线程,负责多个线程的启停,管理向线程池的提交任务,下发给线程去执行。
     实现的基本过程:基本属性,提交任务(put,batch_put),线程启停(start,join),线程池大小(size)。
     具体实现:https://blog.csdn.net/huanglei305/article/details/99702434
    6.实现异步任务处理AsyncTask
     给任务添加一个标记,任务完成后,则标记为完成;任务完成时可直接获取任务运行结果;任务未完成时,获取任务结果,会阻塞获取线程。
     主要实现的两个函数:设置运行结果(set_result),获取运行结果(get_result)
     具体实现:https://blog.csdn.net/huanglei305/article/details/99703371

    展开全文
  • 操作系统面试知识点总结

    万次阅读 多人点赞 2016-07-12 10:20:39
    操作系统面试知识点总结

    绪论

    操作系统的功能

    用户接口:命令接口、程序接口、图形接口

    处理机管理:进程控制、进程同步、进程通信、进程调度

    存储管理:内存分配、内存保护、地址映射、内存扩充

    设备管理:缓冲管理、设备分配、设备处理、虚拟设备管理

    文件管理:文件存储空间管理、目录管理、文件读写管理、文件保护、文件系统的安全性、文件接口

    操作系统的结构

    内核(kernel)与外壳(shell)

    从整体上讲,操作系统一般可分为“内核”(kernel)和“外壳”(shell)两大部分。操作系统的内核是实现操作系统基本功能的程序模块的集合,在机器的系统态(核心态)下运行;操作系统的外壳,指的是运行在内核之上的、完成OS外层功能(如命令解释、机器诊断等)的程序,他们运行在机器的用户态下,是一种开放式结构,其功能可方便地修改或增删。

    核心态和用户态

    计算机系统都有两种运行状态,即核心态用户态,在某一时刻二者必居其一。当操作系统内核的程序模块运行时,机器处于核心态,其他程序(包括OS外壳程序和其他应用程序)运行时机器处于用户态。

    用户态:用户态具有较低特权的执行状态,在这种状态下,处理机只能执行规定的指令,访问指定的寄存器和存储区,用户程序通常只能在这一级别执行。

    核心态:核心态是操作系统内核的运行状态,在这种状态下,处理机具有较高的特权,能执行一切指令,可以访问所有的寄存器和存储区。

    在实际系统中,之所以要区分机器的两种运行状态,目的是给操作系统内核以某些特权。例如,改变状态寄存器和地址映射寄存器的内容等。这些特权是通过执行特权指令实现的,仅当在核心态下才能执行特权指令。

    操作系统的特征

    操作系统的基本特征:并发、虚拟、共享、不确定性

    并发:所谓并发是指在一段时间内有多道程序“在宏观上同时运行”,这样的系统叫并发系统。

    虚拟:操作系统中的虚拟概念,指的是操作系统使用某种技术,要么把物理上的一个变成逻辑上的多个,例如,把一台物理CPU变成多台逻辑上独立的CPU;要么把物理上的多个变成逻辑上的一个,例如,把物理上分开的主存和辅存变成逻辑上统一编址的编程空间,即虚拟内存。

    共享:多道必然带来共享,即多道程序、多个用户作业共享有限的计算机系统资源。计算机系统中的资源共享有两种类型:互斥共享和“同时”共享。

    不确定:操作系统的不确定,不是说操作系统本身的功能不确定,也不是说在操作系统控制下运行的用户程序的结果是不确定的,而是指在操作系统控制下的多个作业的执行顺序和每个作业的执行时间是不确定的。

    代操作系统新特征

    微内核:只给内核分配一些基本的功能,包括地址空间、进程通信和最基本的调度。而其他的操作系统功能都由运行在用户模式下的进程实现。这种方法可以将内核和服务程序的开发分离开,可以为特定的应用程序或环境要求定制服务程序。微内核的优点是,可以简化实现、提供灵活性,很适合于分布式环境。

    多线程

    多处理器

    分布式操作系统

    面向对象技术

    操作系统分类

    多批道处理系统、分时系统、实时系统、网络操作系统、分布式操作系统。

    中断技术

    中断在操作系统中的地位

    在现代计算机系统中,中断通道技术是主机和外部设备并行工作的基础,是多道程序并发执行的推动力,也是整个操作系统的推动力——操作系统是由中断驱动的。

    为什么说中断是多道程序并发执行的推动力呢?在单CPU计算机系统中,要使多道程序得以并发执行,关键在于CPU能在这些程序间不断的切换,使得每道程序都有机会在CPU上运行。导致这种切换的动力是什么?主要是时钟中断

    中断的概念、作用和类型

    中断:中断是指某个事件(电源掉电、加法溢出或外部设备传输结束等)发生时系统终止现行程序的运行,引出中断处理程序对该事件进行处理,完毕后返回断点继续运行,这个过程称为“中断”。

    中断的作用:CPU与I/O设备并行工作、硬件故障处理、实现人机通信、实现多道程序的并发执行等。

    中断的类型:硬件故障中断、程序性中断、外部中断、输入/输出设备中断、访管中断。

    中断响应流程图:


    中断和轮询的特点

    对I/O设备的程序轮询的方式,是早期的计算机系统对I/O设备的一种管理方式。它定时对各种设备轮流询问一遍有无处理要求。轮流询问之后,有要求的,则加以处理。在处理I/O设备的要求之后,处理机返回继续工作。尽管轮询需要时间,但轮询要比I/O设备的速度要快得多,所以一般不会发生不能及时处理的问题。当然,再快的处理机,能处理的输入输出设备的数量也是有一定限度的。而且,程序轮询毕竟占据了CPU相当一部分处理时间,因此,程序轮询是一种效率较低的方式,在现代计算机系统中已很少应用。

    程序中断通常简称中断,是指CPU在正常运行程序的过程中,由于预先安排或发生了各种随机的内部或外部事件,使CPU中断正在

    运行的程序,而转到为响应的服务程序去处理。

    轮询——效率低,等待时间很长,CPU利用率不高。

    中断——容易遗漏一些问题,CPU利用率高。

    进程与线程

    进程的基本状态


    1、什么是进程(Process)和线程(Thread)?有何区别?

    定义
    进程
    是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位.
    线程通常,当一个进程内有多个线程时,线程的程序是其所属进程的一部分,表示进程中的一个控制点,执行一系列的指令。同属一个进程的其他的线程共享进程所拥有的全部资源(包括地址空间)。它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),因此,它的创建、撤销、切换所需要的时空开销比进程要小。线程的引入可进一步提高系统的并发性。

    区别
    进程和线程的主要差别在于它们是不同的操作系统资源管理方式。进程有独立的地址空间,一个进程崩溃后,在保护模式下不会对其它进程产生影响,而线程只是一个进程中的不同执行路径。线程有自己的堆栈和局部变量,但线程之间没有单独的地址空间,一个线程死掉就等于整个进程死掉,所以多进程的程序要比多线程的程序健壮,但在进程切换时,耗费资源较大,效率要差一些。但对于一些要求同时进行并且又要共享某些变量的并发操作,只能用线程,不能用进程。

    1、调度分派:线程是可调度分派的工作单元,它包括处理器上下文环境和栈中自己的数据区域。线程顺序执行,并且可以中断,这样处理器可以转到另一个线程。在有线程的系统中,进程不再是可调度分派的工作单元。
    2、资源拥有:进程是一个或多个线程和相关资源的集合。线程基本不拥有资源,它的运行资源取决于其所属的进程。
    3、地址空间:不同进程的地址空间是相互独立的,而同一个进程的各线程共享同一地址空间。
    4、一个进程可包含一个或多个线程,反过来则不然。一个进程中的线程在另一个进程中时不可见的。
    5、通信关系:进程间的通信必须使用操作系统提供的进程间通信机制,而同一个进程中的各线程间可以通过直接读写数据段来进行通信。当然,同一个进程中的各线程间的通信也需要同步和互斥手段的辅助,以确保数据一致性。

    用户级线程和内核线程

    线程的类型:对于通常的进程,不论是系统进程还是用户进程,在进行切换时都要依赖内核中的进程调度。因此,不论什么进程都是与内核有关的,而且是在内核支持下进行切换的。根据线程的控制方式不同,可将线程分为内核线程和用户级线程。

    内核级线程:这类线程依赖于内核,又称为内核支持的线程或轻量级进程。无论是在用户程序中的线程还是系统进程中的线程,它们的创建、撤销和切换都由内核实现。为此,需要在内核中建立一个线程控制块,内核根据该控制块而感知该线程的存在并对线程进行控制。

    用户级线程:它仅存在于用户级中,这种线程是不依赖于操作系统核心的。应用进程利用线程库来完成其创建、同步、调度和管理线程。因此用户线程间的切换不需要内核特权,不需要用户态/核心态切换,速度快,操作系统内核无法感知用户级线程的存在。

    用户级线程和内核级线程的区别

    (1)内核支持线程是OS内核可感知的,而用户级线程是OS内核不可感知的。
    (2)用户级线程的创建、撤消和调度不需要OS内核的支持;而内核支持线程的创建、撤消和调度都需OS内核提供支持,而且与进程的创建、撤消和调度大体是相同的。
    (3)用户级线程执行系统调用指令时将导致其所属进程被中断,而内核支持线程执行系统调用指令时,只导致该线程被中断。
    (4)在只有用户级线程的系统内,CPU调度还是以进程为单位,处于运行状态的进程中的多个线程,由用户程序控制线程的轮换运行;在有内核支持线程的系统内,CPU调度则以线程为单位,由OS的线程调度程序负责线程的调度。
    (5)用户级线程的程序实体是运行在用户态下的程序,而内核支持线程的程序实体则是可以运行在任何状态下的程序。

    内核线程的优点:

    (1)当有多个处理机时,一个进程的多个线程可以同时执行。

    缺点:

    (1)由内核进行调度。

    用户线程的优点:

    (1) 线程的调度不需要内核直接参与,控制简单。
    (2) 可以在不支持线程的操作系统中实现。
    (3) 创建和销毁线程、线程切换代价等线程管理的代价比内核线程少得多。
    (4) 允许每个进程定制自己的调度算法,线程管理比较灵活。这就是必须自己写管理程序,与内核线程的区别。
    (5) 线程能够利用的表空间和堆栈空间比内核级线程多。
    (6) 同一进程中只能同时有一个线程在运行,如果有一个线程使用了系统调用而阻塞,那么整个进程都会被挂起。另外,页面失效也会产生同样的问题。

    缺点:

    (1)资源调度按照进程进行,多个处理机下,同一个进程中的线程只能在同一个处理机下分时复用

    进程同步与通信

    互斥与同步

    所谓互斥,指的是多个进程之间由于竞争临界资源而相互制约。什么是临界资源?就是指一次仅允许一个进程使用的资源,即不能同时被共享的资源。‘

    进程的同步,指多个进程中发生的事件存在某种时序关系,需要相互合作,共同完成一项任务。

    进程同步的主要任务:是对多个相关进程在执行次序上进行协调,以使并发执行的诸进程之间能有效地共享资源和相互合作,从而使程序的执行具有可再现性。
    同步机制遵循的原则:
    (1)空闲让进;
    (2)忙则等待(保证对临界区的互斥访问);
    (3)有限等待(有限代表有限的时间,避免死等);
    (4)让权等待,(当进程不能进入自己的临界区时,应该释放处理机,以免陷入忙等状态)。

    进程通信

    进程间的通信是如何实现的
    进程通信,是指进程之间的信息交换(信息量少则一个状态或数值,多者则是成千上万个字节)。因此,对于用信号量进行的进程间的互斥和同步,由于其所交换的信息量少而被归结为低级通信
    所谓高级进程通信指:用户可以利用操作系统所提供的一组通信命令传送大量数据的一种通信方式。操作系统隐藏了进程通信的实现细节。或者说,通信过程对用户是透明的。
    高级通信机制可归结为三大类:
    (1)共享存储器系统(存储器中划分的共享存储区);实际操作中对应的是“剪贴板”(剪贴板实际上是系统维护管理的一块内存区域)的通信方式,比如举例如下:word进程按下ctrl+c,在ppt进程按下ctrl+v,即完成了word进程和ppt进程之间的通信,复制时将数据放入到剪贴板,粘贴时从剪贴板中取出数据,然后显示在ppt窗口上。

    特点:信息交换量大、发送和接受更加灵活、信息保存时间长。

    (2)消息传递系统(进程间的数据交换以消息(message)为单位,当今最流行的微内核操作系统中,微内核与服务器之间的通信,无一例外地都采用了消息传递机制。应用举例:邮槽(MailSlot)是基于广播通信体系设计出来的,它采用无连接的不可靠的数据传输。邮槽是一种单向通信机制,创建邮槽的服务器进程读取数据,打开邮槽的客户机进程写入数据。
    (3)管道通信系统(管道即:连接读写进程以实现他们之间通信的共享文件(pipe文件,类似先进先出的队列,由一个进程写,另一进程读))。实际操作中,管道分为:匿名管道、命名管道。匿名管道是一个未命名的、单向管道,通过父进程和一个子进程之间传输数据。匿名管道只能实现本地机器上两个进程之间的通信,而不能实现跨网络的通信。命名管道不仅可以在本机上实现两个进程间的通信,还可以跨网络实现两个进程间的通信。

    进程间通讯的方式
    管道:管道中还有命名管道非命名管道之分,非命名管道只能用于父子进程通讯。命名管道可用于非父子进程,命名管道就是FIFO,管道是先进先出的通讯方式。FIFO是一种先进先出的队列,它类似于一个管道,只允许数据的单向流动。每个FIFO都有一个名字,允许不相关的进程访问同一个FIFO。 
    消息队列:是用于两个进程之间的通讯,首先在一个进程中创建一个消息队列,然后再往消息队列中写数据,而另一个进程则从那个消息队列中取数据。需要注意的是,消息队列是用创建文件的方式建立的,如果一个进程向某个消息队列中写入了数据之后,另一个进程并没有取出数据,即使向消息队列中写数据的进程已经结束,保存在消息队列中的数据并没有消失,也就是说下次再从这个消息队列读数据的时候,就是上次的数据!!!

    信号量: 不能传递复杂消息,只能用来同步 。
    共享内存:只要首先创建一个共享内存区,其它进程按照一定的步骤就能访问到这个共享内存区中的数据,当然可读可写;  
    几种方式的比较
    管道:速度慢,容量有限 
    消息队列:容量受到系统限制,且要注意第一次读的时候,要考虑上一次没有读完数据的问题。 
    信号量:不能传递复杂消息,只能用来同步 
    共享内存区:能够很容易控制容量,速度快,但要保持同步,比如一个进程在写的时候,另一个进程要注意读写的问题,相当于线程中的线程安全,当然,共享内存区同样可以用作线程间通讯,不过没这个必要,线程间本来就已经共享了一块内存。  
    (1)无名管道( pipe ):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。  
    (2)有名管道 (named pipe) : 有名管道也是半双工的通信方式,但是它允许无亲缘关系进程间的通信。  
    (3)信号量( semophore ) : 信号量是一个计数器,可以用来控制多个进程对共享资源的访问。它常作为一种锁机制,防止某进程正在访问共享资源时,其他进程也访问该资源。因此,主要作为进程间以及同一进程内不同线程之间的同步手段。  
    (4)消息队列( message queue ) : 消息队列是由消息的链表,存放在内核中并由消息队列标识符标识。消息队列克服了信号传递信息少、管道只能承载无格式字节流以及缓冲区大小受限等缺点。  
    (5)信号 ( sinal ) : 信号是一种比较复杂的通信方式,用于通知接收进程某个事件已经发生。  
    (6)共享内存( shared memory ) :共享内存就是映射一段能被其他进程所访问的内存,这段共享内存由一个进程创建,但多个进程都可以访问。共享内存是最快的 IPC 方式,它是针对其他进程间通信方式运行效率低而专门设计的。它往往与其他通信机制,如信号两,配合使用,来实现进程间的同步和通信。  
    (7)套接字( socket ) : 套解口也是一种进程间通信机制,与其他通信机制不同的是,它可用于不同及其间的进程通信

    处理机调度

    作业(或进程)的调度算法有哪些?

    (1)先来先服务(FCFS,First-Come-First-Served): 此算法的原则是按照作业到达后备作业队列(或进程进入就绪队列)的先后次序来选择作业(或进程)。
    (2)短作业优先(SJF,Shortest Process Next):这种调度算法主要用于作业调度,它从作业后备队列中挑选所需运行时间(估计值)最短的作业进入主存运行。 
    (3)时间片轮转调度算法(RR,Round-Robin):当某个进程执行的时间片用完时,调度程序便停止该进程的执行,并将它送就绪队列的末尾,等待分配下一时间片再执行。然后把处理机分配给就绪队列中新的队首进程,同时也让它执行一个时间片。这样就可以保证就绪队列中的所有进程,在一给定的时间内,均能获得一时间片处理机执行时间。 
    (4)高响应比优先(HRRN,Highest Response Ratio Next): 按照高响应比((已等待时间+要求运行时间)/ 要求运行时间)优先的原则,在每次选择作业投入运行时,先计算此时后备作业队列中每个作业的响应比RP然后选择其值最大的作业投入运行。 
    (5)优先权(Priority)调度算法: 按照进程的优先权大小来调度,使高优先权进程得到优先处理的调度策略称为优先权调度算法。
    (6) 多级队列调度算法:多队列调度是根据作业的性质和类型的不同,将就绪队列再分为若干个子队列,所有的作业(或进程)按其性质排入相应的队列中,而不同的就绪队列采用不同的调度算法。

    死锁

    什么是死锁?其条件是什么?怎样避免死锁?
    死锁的概念:在两个或多个并发进程中,如果每个进程持有某种资源而又都等待别的进程释放它或它们现在保持着的资源,在未改变这种状态之前都不能向前推进,称这一组进程产生了死锁。通俗地讲,就是两个或多个进程被无限期地阻塞、相互等待的一种状态。
    死锁产生的原因主要是:1、 系统资源不足;2、进程推进顺序非法
    产生死锁的必要条件
    (1)互斥,一个资源每次只能被一个进程使用;
    (2)不可抢占,进程已获得的资源,在未使用完之前,不能强行剥夺;
    (3)占有并等待,一个进程因请求资源而阻塞时,对已获得的资源保持不放;
    (4)环形等待,若干进程之间形成一种首尾相接的循环等待资源关系。
    这四个条件是死锁的必要条件,只要系统发生死锁,这些条件必然成立,而只要上述条件之一不满足,就不会发生死锁。
    死锁的解除与预防:理解了死锁的原因,尤其是产生死锁的四个必要条件,就可以最大可能地避免、预防和解除死锁。所以,在系统设计、进程调度等方面注意如何不让这四个必要条件成立,如何确定资源的合理分配算法,避免进程永久占据系统资源。此外,也要防止进程在处于等待状态的情况下占用资源。因此,对资源的分配要给予合理的规划。
    死锁的处理策略:预防策略、避免策略、检测与恢复策略。

    存储器管理

    存储器管理的主要功能: 对存储空间进行分配和管理、存储器保护、地址转换、扩充主存容量(虚拟内存)。
    存储器的地址转换:静态地址转换和动态地址转换(实现非连续存储,为虚拟存储器的实现打下了基础)。
    存储器的分区存储管理:固定式分区存储管理(内部碎片)和动态分区存储管理(外部碎片)。

    存储器的分页存储管理




    存储器的分段存储管理


    存储器的段页式存储管理

     

    分段式存储管理、分页式存储管理,两个的区别? 

    页是信息的物理单位,分页是为实现离散分配方式,以消减内存的外零头,提高内存的利用率;或者说,分页仅仅是由于系统管理的需要,而不是用户的需要。

    段是信息的逻辑单位,它含有一组其意义相对完整的信息。分段的目的是为了能更好的满足用户的需要。
    页的大小固定且由系统确定,把逻辑地址划分为页号和页内地址两部分,是由机器硬件实现的,因而一个系统只能有一种大小的页面。

    段的长度却不固定,决定于用户所编写的程序,通常由编辑程序在对源程序进行编辑时,根据信息的性质来划分。
    分页的作业地址空间是一维的,即单一的线性空间,程序员只须利用一个记忆符,即可表示一地址。分段的作业地址空间是二维的,程序员在标识一个地址时,既需给出段名,又需给出段内地址。

    虚拟存储器

    虚拟存储器:是指具有请求调入功能和置换功能,能从逻辑上对内存容量加以扩充的一种存储器系统。其逻辑容量由内存容量和外在容量之后所决定,其运行速度接近于内存速度,每位的成本接近于外存。

    虚拟存储器理论基础:时间局部性原理和空间局部性原理。

    虚拟存储器的实现方法:其实现,都是建立在离散分配的存储管理方式的基础上。一般有分两种:请求分页系统、请求分段系统。

    页面置换算法有哪些?
    (1)最佳置换算法(Optimal):即选择那些永不使用的,或者是在最长时间内不再被访问的页面置换出去。(它是一种理想化的算法,性能最好,但在实际上难于实现)。  
    (2)先进先出置换算法FIFO:该算法总是淘汰最先进入内存的页面,即选择在内存中驻留时间最久的页面予以淘汰。  
    (3)最近最久未使用置换算法LRU(Least Recently Used):该算法是选择最近最久未使用的页面予以淘汰,系统在每个页面设置一个访问字段,用以记录这个页面自上次被访问以来所经历的时间T,当要淘汰一个页面时,选择T最大的页面。  
    (4)Clock置换算法:也叫最近未用算法NRU(Not RecentlyUsed)。该算法为每个页面设置一位访问位,将内存中的所有页面都通过链接指针链成一个循环队列。当某页被访问时,其访问位置“1”。在选择一页淘汰时,就检查其访问位,如果是“0”,就选择该页换出;若为“1”,则重新置为“0”,暂不换出该页,在循环队列中检查下一个页面,直到访问位为“0”的页面为止。由于该算法只有一位访问位,只能用它表示该页是否已经使用过,而置换时是将未使用过的页面换出去,所以把该算法称为最近未用算法。  
    (5)最少使用置换算法LFU:该算法选择最近时期使用最少的页面作为淘汰页。

    页面分配算法

    页面分配,是指按什么原则给活动进程分配物理块数。通常有如下三种分配算法:

    1、平均分派算法。2、按比例分配算法。3、按优先级分配算法。

    页面的分配和置换范围

    如何在相互竞争的可运行进程之间,选择分配物理块的策略和置换页面的范围。需要考虑如下两个因素:
    1、系统的并发性和吞吐率。2、缺页中断率。

    基于这些因素,现代操作系统通常采用固定分配和可变分配两种策略,被置换页面的范围分为全局和局部两种。我们将分配策略和置换范围进行组合,可得出4种方式,但是固定分配全局置换方式是不可能的,因此,有如下3种方式:
    1、固定分配局部置换
    2、可变分配全局置换
    3、可变分配局部置换

    抖动

    所谓抖动是指,在具有虚拟存储器的计算机系统中,由于频繁的页面置换活动,使得访问外存储器次数过多,从而引起的系统效率大大降低的一种现象。

    设备管理

    磁臂调度

    1、先来先服务算法。2、最短查找时间优先算法。3、Scan算法(电梯算法)。4、C-Scan(Circular SCAN),扫描方向永远是一个方向。

    文件管理

    Linux操作系统

    Linux中常用到的命令

    显示文件目录命令ls        如ls
    改变当前目录命令cd        如cd /home
    建立子目录mkdir           如mkdir xiong
    删除子目录命令rmdir       如rmdir /mnt/cdrom
    删除文件命令rm            如rm /ucdos.bat
    文件复制命令cp            如cp /ucdos /fox
    获取帮助信息命令man      如man ls
    显示文件的内容less        如less mwm.lx

    Linux文件属性有哪些?(共十位)
    -rw-r--r--那个是权限符号,总共是- --- --- ---这几个位。
    第一个短横处是文件类型识别符:-表示普通文件;c表示字符设备(character);b表示块设备(block);d表示目录(directory);l表示链接文件(link);

    第一个三个连续的短横是用户权限位(User)

    第二个三个连续短横是组权限位(Group)

    第三个三个连续短横是其他权限位(Other)。
    每个权限位有三个权限,r(读权限),w(写权限),x(执行权限)。

    如果每个权限位都有权限存在,那么满权限的情况就是:-rwxrwxrwx;权限为空的情况就是- --- --- ---。
    权限的设定可以用chmod命令,其格式位:chmod ugoa+/-/=rwx filename/directory。例如:
    一个文件aaa具有完全空的权限- --- --- ---。
    chmod u+rw aaa(给用户权限位设置增加)读写权限,其权限表示为:- rw- --- ---)
    chmod g+r aaa(给组设置权限为可读,其权限表示为:- --- r-- ---)
    chmod ugo+rw aaa(给用户、组、其它用户或组设置权限为读写,权限表示为:- rw- rw- rw-)
    如果aaa具有满权限- rwx rwx rwx。
    chmod u-x aaa(去掉用户可执行权限,权限表示为:- rw- rwx rwx)
    如果要给aaa赋予制定权限- rwx r-x r-x,命令为:
    chmod u=rwx,go=rx aaa

    其他

    CPU中的缓存和操作系统中的缓存分别是什么? 

    操作系统的缓存是指快表。在操作系统中,为提高系统的存取速度,在地址映射机制中增加一个小容量的联想寄存器,即快表,用来存放当前访问最频繁的少数活动页面的页号。当某用户需要存取数据时,根据数据所在的逻辑页号在快表中找到其对应的内存块号,再联系页内地址,形成物理地址。如果在快表中没有相应的逻辑页号,则地址映射仍可以通过内存中的页表进行,得到空闲块号后必须将该块号填入快表的空闲块中。如果快表中没有空闲块,则根据淘汰算法淘汰某一行,再填入新的页号和块号。快表查找内存块的物理地址消耗的时间大大降低了,使得系统效率得到了极大的提高。 
    CPU中的缓存是指高速缓存。CPU的执行速度越来越快,系统架构越来越先进,而主存的结构和存取速度改进则较慢,因此,高速缓存技术将越来越重要。    高速缓冲存储器是位于CPU和内存之间的临时存储器,它的容量比内存小但交换速度快。在高速缓冲存储器中的数据是内存中的一小部分,但这一小部分是短时间内CPU即将访问的。当CPU调用大量数据时,就可避开内存直接从高速缓冲存储器中调用,从而加快读取速度。

    展开全文
  • 信号与系统总结1

    2014-11-17 23:33:03
    信号与系统的简单总结1,总结了傅里叶变换的一些公式使用MATLAB的实现,待续
  • 信号与系统实用总结

    万次阅读 多人点赞 2017-02-13 23:04:39
    信号与系统是个比较抽象的课,因为它是用数学建模的方法去分析电路。 那么,我们把电路的现象结合信号与系统的理论指导,就会发现柳暗花明又一村。 1、什么是信号?什么是噪声? 比如,我们现在要用ADC采集50Hz的...

    信号与系统是个比较抽象的课,因为它是用数学建模的方法去分析电路。

    那么,我们把电路的现象结合信号与系统的理论指导,就会发现柳暗花明又一村。

    1、什么是信号?什么是噪声?

    比如,我们现在要用ADC采集50Hz的市电,发现如下图所示的波形。

    没错,出来的波形并不是我们想要的光滑的50Hz正弦波,而是有一点奇葩的波形。

    经过分析得到,奇葩的波形,是由50Hz正弦波和1KHz的正弦波叠加而成,但是1KHz的正弦波并不是我们想要的东西。

    综上所述,你想要的东西就是信号(50Hz),不想要的东西(1KHz)就是噪声。当然,前提是你要清楚你想要的东西是什么。

    BTW,信号不仅仅包含电信号,也包含声音、光、热、力等等。

    2、什么是系统?

    LM324这种运放,就是一个系统。我们不能知道它的内部构造,但是我们可以搭个电路,从外部去测量它的性能。

    这就是信号与系统,最重要的思想。把系统当成一个黑匣子,测量外部的信号,从而评估系统的特性。

    因为,很多时候,我们不需要知道系统的内部构造。

    BTW,系统不仅仅包含运放,小到一个电容,大到整个电路板,任何我们想观察的事物,都可以称为系统。

    3、什么是激励?什么是响应?

    信号与系统最基本的研究方法就是,用信号发生器送信号到电路板,再用示波器去观察输出的波形。

    这种操作,也就是送激励到系统,再观察响应。

    如果利用信号发生器扫频的功能,再配合示波器,很容易就得到电路板的幅频特性和相频特性。这就非常有助我们去理解这个电路板的性能。

    很多时候我们不关心系统的响应,只关心系统的稳定性。

    也没那么多时间去扫频,而且扫频并不是十分方便。所以人们想到一个方法,利用一些频率成份特别丰富的激励去测试系统的稳定性(其中一个频率成份使得系统自激,就说明不稳定,如:运放等电路)。

    最常用的激励有:冲激函数、窗函数和阶跃函数。

    上图分别为冲激函数的时域图和频谱。显然,冲激函数的频谱是无限广,也就是包含无数个频率成分。

    但是冲激函数在物理上不无法实现的。所以人们想到用一个精度足够高的窄脉冲代替冲激函数。这个窄脉冲就是窗函数了。

    上图分别为窗函数的时域图和频谱。显然,窗函数的频谱也是无限广,但是更容易现实。

    如果没法弄到窄函数,那么,在要求不是很高的情况下,用一个简单的开关动作去产生阶跃函数也是可以的。

    上图分别为阶跃函数的时域图和频谱。阶跃函数的频谱也是很广的,虽然比不上冲激函数和窗函数。

    4、什么是卷积?

    卷积是一种积分,既然是积分,就会有先分割再叠加的操作。如下图所示。

    那么卷积就是先把输入信号分割成若干个单位冲激信号,再作用于系统函数(即加权),最后再叠加。

    把上图中步骤(1)~(5)的阴影部分累加起来,就得到输出信号。如下图所示。

    于是,我们得到卷积的计算公式。

    一看,发现没有冲激信号啊,其实上面的公式是一个简化后的公式,它把冲激信号隐藏起来了。

    先看看冲激信号的筛选性质。如下图所示。

    把一个信号分解成若干个冲激信号,再叠加,其实还是原来的信号,所以卷积中仍然使用h(t-τ),

    但是t-τ是冲激信号的延时性质遗留下来的,把h(t)延时τ就得到了h(t-τ)。

    为什么要把信号延时、平移?

    先延时再平移,才让输入信号和系统函数之间有交集,发生作用。否则的话,哪来输出?

    前面延时t为变量τ为常量,现在平移τ为变量t为常量。

    τ的取值范围是正负无穷,也就是说把h(t)从负无穷平移到正无穷,所以总能使用输入信号和系统函数产生交集,最终得到输出。

    为什么要把信号翻转?

    跟时间有关。

    我们在图上看到的h(t)函数,把t由小到大排列是h(0)、h(1)、h(2)。。。

    但是,细想一下哪个时刻最先出现?没错,是h(0),所以才要把信号翻转一下,使得h(0)最先起作用。

    所以利用图解法解释卷积时,一上来就把信号反转,让人有点奇怪。

    卷积定理揭示了时域和频域之间的关系,是一个非常重要的定理,这里提一下。

    5、什么是傅里叶级数?什么是傅里叶变换?

    请认真地看《如果看了这篇文章你还不懂傅里叶变换,那就过来掐死我吧》。

    这里不再重复。

    BTW,一般的数字示波器都有一个FFT的功能,可以看到信号的频谱,这就非常有利于我们分析信号的频率成份。

    6、什么是拉普拉斯变换?

    拉普拉斯变换又称拉氏变换。在电学里面,拉普拉斯变换只是作为求解微分方程的一种简单方法,属于积分变换法。

    拉普拉斯变换可以把复杂的微分方程转化为线性方程。

    利用拉普拉斯变换可以求解各种复杂电路的响应,包括各种的运放电路。如下图所示。

    但是,这么复杂的计算,可以用仿真工具来完成,如:multisim或者ADS等。

    很多人认为拉普拉斯变换没用,其实是仿真工具用了。

    熟练使用拉普拉斯变换,有利于理解电路的稳定性、响应,可以提高硬件设计能力。

    7、什么是Z变换?

    拉普拉斯变换适用于连续信号,但是计算机难以处理连续信号(无数个点)。

    把连续信号采样后,再做z变换,所有的计算变成有限个点,这样才能送到计算机中处理。z变换也就是离散信号的拉普拉斯变换。

    z变换和拉普拉斯在定义、性质上都是大同小异,这里不再重复。

    特别需要指出,z的-1次方,其实就是对应于一个D触发器,可以延时一个时钟周期。

    而z的2次方,是超前2个时钟周期,不易于用物理实现,那么,你可以把超前换成滞后(整个电路滞后3拍),就能转化为D触发器了。

    8、傅里叶变换、拉普拉斯变换、z变换的关系。

    (1) 连续信号使用傅里叶变换,必须满足绝对可积的条件。

    (2) 离散信号使用傅里叶变换,必须满足绝对可和的条件。

    这两个条件都是比较苛刻的,对于一些不满足条件的信号将无法使用傅里叶变换来分析。

    所以,需要将傅里叶变换扩展到s平面,即拉普拉斯变换,这样可以分析那些不满足条件的信号。

    而z变换是用于分析离散信号,s平面与z平面的关系:

    展开全文
  • 信号与系统期末复习所要考的重要考点总结,希望能帮助大家期末取得好成绩。
  • 信号系统公式总结,文件分为两部分,前半部分49页,利用表格对信号系统的所有常见不常见公式名字、符号、性质、响应特性、连续离散、易错易混知识点对比等做了...特别适用于信号系统专业考研时,知识点总结整理之用。
  • 操作系统知识点总结

    千次阅读 多人点赞 2019-06-24 17:39:23
    进程是对运行时程序的封装, 是系统进行资源调度和分配的基本单位, 实现了操作系统的并发 线程是进程的子任务 是CPU调度和分派的基本单位 一个程序至少有一个进程, 一个进程至少有一个线程, 线程依赖于进程而...

    1.进程和线程以及他们的区别

    • 进程是对运行时程序的封装, 是系统进行资源调度和分配的基本单位, 实现了操作系统的并发
    • 线程是进程的子任务 是CPU调度和分派的基本单位

    一个程序至少有一个进程, 一个进程至少有一个线程, 线程依赖于进程而存在

    进程在执行过程中拥有独立的内存单元, 而多个线程共享进程的内存

    2.进程间通信的几种方式

    • 管道(pipe) 及命名管道(named pipe): 管道可用于具有亲缘关系的父子进程间的通信, 有名管道除了具有管道所具有的功能外, 它还允许无亲缘关系进程间的通信
    • 信号(signal):信号是一种比较复杂的通信方式, 用于接受进程某个事件已发生
    • 消息队列:消息队列是消息的链接表, 它克服了上两种通信方式中信号量有限的缺点, 具有写权限的进程可以按照一定的规则向消息队列中添加新信息, 对消息队列有读权限的进程则可以从消息队列中读取信息
    • 共享内存:可以说这是最有用的进程间通信方式。 它使得多个进程可以访问同一块内存空间, 不同进程可以及时看到对方进程中对共享内存中数据的更新。 这种方式需要依赖某种同步操作, 如互斥锁和信号量等。
    • 信号量:主要作为进程之间及同一种进程的不同线程之间的同步和互斥手段
    • 套接字:这是一种更为一般的进程间通信机制, 它可用于网络中不同机器之间的进程间通信, 应用非常广泛

    3.线程同步的方式

    • 互斥量(synchronized/Lock): 采用互斥对象机制, 只有拥有互斥对象的线程才有访问公共资源的权限。 因为互斥对象只有一个, 所以可以保证公共资源不会被多个线程同时访问
    • 信号量(Semphare): 它允许同一时刻多个线程访问同一资源, 但是需要控制同一时刻访问此资源的最大线程数量
    • 事件(信号)(Wait/Notify): 通过通知操作的方式来保持多线程同步, 还可以方便的实现多线程优先级的比较操作

    4.什么是死锁?死锁产生的条件?

    • 死锁:在两个或者多个并发进程中。 如果每个进程持有某种资源而又等待其它进程释放它或它们现在保持着的资源, 在为改变这种状态之前都不能向前推进, 称这一组进程产生了死锁。 通俗的讲, 就是两个或多个进程无限期阻塞、 相互等待的一种状态
    • 死锁产生的必要条件(4个):
    1. 互 斥: 至少有一个资源必须属于非共享模式, 即一次只能被一个进程使用; 若其他申请使用该资源, 那么申请进程必须等到该资源被释放为止
    2. 占有并等待: 一个进程必须占有至少一个资源并等待另一个资源, 而该资源为其他进程所占有
    3. 非抢占: 进程不能被抢占, 即资源只能被进程在完成任务后自愿释放
    4. 循环等待: 若干进程之间形成一种头尾相接的环形等待资源关系

    5.死锁的处理基本策略和常用方法有哪些?

     预防死锁避免死锁检测死锁解除死锁鸵鸟算法(把头埋在沙里, 假装根本没有问题发生)

    6.死锁预防的基本思想是什么?

    只要确保死锁发生的四个必要条件中至少有一个不成立, 就能预防死锁的发生 

     具体方法:

    • 打破互斥条件: 允许进程同时访问某些资源。 但是, 有些资源是不能被多个进程所共享的, 这是由资源本身属性所决定的, 因此, 这种办法通常并无实用价值
    • 打破占有并等待条件: 可以实行资源预先分配策略(进程在运行前一次性向系统申请它所需要的全部资源, 若所需全部资源得不到满足, 则不分配任何资源, 此进程暂不运行; 只有当系统满足当前进程所需的全部资源时, 才一次性将所申请资源全部分配给该进程)或者只允许进程在没有占用资源时才可以申请资源(一个进程可申请一些资源并使用它们, 但是在当前进程申请更多资源之前, 它必须全部释放当前所占有资源)。但是这种策略也存在一些缺点:在很多情况下, 无法预知一个进程执行前所需的全部资源, 因为进程是动态执行的, 不可预知的; 同时, 会降低资源利用率, 导致降低了进程的并发性
    • 打破非抢占条件:允许进程强行从占有者那里夺取某些资源。 也就是说当一个进程占了一部分资源, 在其中请求新的资源且得不到满足, 它必须释放所有占有的资源以使其它线程使用, 这种预防死锁的方式实现起来困难, 会降低系统性能
    • 打破循环等待条件:实行资源有序分配策略。 对所有资源排序编号, 所有进程对资源的请求必须严格按资源序号递增的顺序提出, 即只用占用了小号资源才能申请大号资源, 这样就不会产生环路, 预防死锁的发生

    7.死锁避免的基本思想是什么?

    死锁避免的基本思想是动态地检测资源分配状态, 以确保循环等待条件不成立, 从而确保系统处于安全状态。 所谓的安全状态是指:如果系统能按某个顺序为每个进程分配资源, 那么系统状态是安全的, 换句话说就是, 如果存在一个安全序列, 那么系统处于安全状态。 资源分配图算法银行家算法是两种经典的死锁避免算法, 其可以确保系统始终处于安全状态。 其中, 资源分配图算法应用场景为每种资源类型只有一个实例(申请边, 分配边, 需求边, 不形成环在允许分配) 而银行家算法(现代操作系统第四版P257)应用于每种资源类型可以有多个实例的场景

    8.死锁解除的常用方法是什么?

    • 进程终止和资源抢占

    所谓进程终止是指简单地终止一个或多个进程以打破循环等待, 包括两种方式:终止所有死锁进程和一次只终止一个进程直到取消死锁循环为止

    所谓资源抢占是值从一个或多个死锁进程那里抢占一个或多个资源, 此时必须考虑三个问题:

    1. 选择一个牺牲品
    2. 回滚:回滚到安全状态
    3. 饥饿:在代价因素中加上回滚次数, 回滚的越多则越不可能继续被作为牺牲品。 避免一个进程总是被回滚

     9.进程有哪几种状态?

    • 就绪状态:进程已获得除处理机意外的所需资源待分配处理机资源
    • 运行状态:占用处理机资源运行, 处于此状态的进程数小于等于CPU数
    • 阻塞状态:进程等待某种条件, 在条件满足之前无法执行

    10.线程有哪几种状态?

    • 就绪(Runnable): 线程准备运行, 不一定立马就能开始执行
    • 运行中(Running):进程正在执行线程的代码
    • 等待中(Waiting):线程处于阻塞的状态, 等待外部的处理结束
    • 睡眠中(Sleeping):线程被强制睡眠
    • I/O阻塞(Blocked on I/O):等待I/O操作完成
    • 同步阻塞(Blocked on Synchronization):等待获取锁
    • 死亡(Dead):线程完成了执行

    11.分页和分段有什么区别(内存管理)?

    段式存储管理是一种符合用户视角的内存分配管理方案。 在段式存储管理中, 将程序的地址空间划分为若干段堆栈段; 这样每个进程有一个二维地址空间相互独立, 互不干扰。段式管理的优点是:没有内碎片(因为段大小可变, 改变段大小来消除内碎片) 。 但段换入换出时, 会产生外碎片(比如4K的段换5K的段, 会产生1K的外碎片)

    页式存储管理方案是一种用户视角内存与物理内存相分离的内存分配管理方案。 在页式存储管理中, 将程序的逻辑地址分为固定大小的页(Page), 而物理内存划分为同样大小的帧, 程序加载时, 可以将任意一页放入内存中任意一个帧, 这些帧不必连续, 从而实现了离散分离。 页式存储管理的优点是:没有外碎片(因为页的大小固定), 但会产生内碎片(一个页可能填充不满)

    两者不同点:

    • 目的不同:分页是由于系统管理的需要而不是用户的需要, 它是信息的物理单位; 分段的目的是为了更好地满足用户的需要, 它是信息的逻辑单位, 它含有一组其意义相对完整的信息
    • 大小不同:页的大小固定且由系统决定, 而段的长度却不固定, 由其所完成的功能决定
    • 地址空间不同:段向用户提供了二维地址空间; 页向用户提供的是一维地址空间
    • 信息共享:段是信息的逻辑单位, 便于存储保护和信息的共享, 页的保护、共享收到限制
    • 内存碎片:页式存储管理的优点是没有外碎片(因为页的大小固定), 但会产生内碎片(一个页可能填不满), 段式管理的优点是没有内碎片(段大小可变, 改变段大小来消除内碎片), 但段换入换出时会产生外碎片

    12.操作系统中进程调度策略有哪几种?

    • FCFS(先来先服务, 队列实现, 非抢占的):先请求CPU的进程先分配到CPU
    • SJF(最短作业优先调度算法):平均等待时间最短, 但难以知道下一个CPU区间长度
    • 优先级调度算法(可以是抢占的, 也可以是非抢占的):优先级越高的越先分配到CPU相同优先级先到先服务, 存在的主要问题是:低优先级进程无穷等待CPU, 会导致无穷阻塞式饥饿,解决方案:老化(随着时间的推移, 那些越老的进程优先级反而越高)
    • 时间片轮转调度算法(可抢占的):队列中没有进程被分配超过一个时间片的CPU时间, 除非它是唯一可运行的进程。 如果进程的CPU区间超过了一个时间片, 那么该进程就被抢占并放回就绪队列
    • 多级队列调度算法:将就绪队列分成多个独立的队列, 每个队列都有自己的调度算法, 队列之间采用固定优先级抢占调度, 其中, 一个进程根据自身属性被永久地分配到一个队列中
    • 多级反馈队列调度算法:与多级队列调度算法相比, 其允许进程在队列之间移动, 若进程使用过多CPU时间, 那么它会被转移到更低的优先级队列, 在较低优先级队列等待时间过长的进程会被转移到更高优先级队列, 以防止饥饿发生

     13.进程同步的机制有哪些?

    原子操作信号量控制自旋锁管理会合、分布式系统

    14.虚拟内存是什么?

    内存的发展历程:没有内存抽象--有内存抽象--连续内存分配--不连续内存分配

    虚拟内存允许执行进程不必完全在内存中 。虚拟内存的基本思想:每个进程拥有独立的地址空间, 这个空间被分为大小相等的多个块, 称为(Page), 每个页都是一段连续的地址。 这些页被映射到物理内存, 但并不是所有的页都必须在内存中才能运行程序。 当程序引用到一部分在物理内存中的地址空间时, 由硬件立即进行必要的映射;当程序引用一部分不在物理内存中的地址空间时, 由操作系统负责将缺失的部分装入物理内存并重新执行失败的命令。 这样, 对于进程而言, 逻辑上似乎有很大的内存空间, 实际上其中一部分对应物理内存上的一块(称为帧, 通常也和帧大小相等), 还有一些没加载在内存中的对应在硬盘上,注意:请求分页系统, 请求分段系统和请求段页式系统都是针对虚拟内存的, 通常请求实现内存与外存的信息置换,虚拟内存实际上可以比物理内存大。 当访问虚拟内存时, 会访问内存管理单元去匹配对应的物理地址, 如果虚拟内存的页并不存在于物理内存中会产生缺页中断, 从磁盘取得缺的页放入内存, 如果内存已满, 会根据某种算法将磁盘中的页换出

    15.页面置换算法有哪些?

    • FIFO先进先出算法:比如作业调度(实现简单)
    • LRU(least recently use)最近最少使用算法:根据使用时间到现在的长短来判断
    • OPT(optimal replacement)最优置换算法:理论的最优,就是要保证置换出去的页是不再被使用的页, 或者是实际内存中最晚使用的算法
    • LFU(least frequently use)最少使用次数算法:根据使用次数来判断

    16.虚拟内存的应用与优点有哪些?

    虚拟内存很适合在多道程序设计系统中使用, 许多程序的片段同时保存在内存中。 当一个程序等待它的一部分读入内存时, 可以把CPU交给另一个进程使用。

    • 在内存中可以保留多个进程, 系统并发提高
    • 解除了用户与内存之间的紧密约束, 进程可以比内存的全部空间还大 

    17.颠簸是什么?(抖动) 

    颠簸本质上是指频繁的页调度行为, 具体来讲, 进程发生缺页中断,这时,必须置换某一页。 然而, 其他所有的页都在使用, 它置换一个页, 但又立刻再次需要这个页。因此, 会不断产生缺页中断, 导致整个系统的效率急剧下降, 这种现象称为颠簸

    18.如何解决内存颠簸(抖动)?

    • 如果是因为页面替换策略失误, 可以修改替换算法来解决这个问题
    • 如果是因为运行的程序太多, 造成程序无法同时将所有频繁访问的页面调入内存, 则要降低多道程序的数量
    • 否则,终止该进程增加物理内存容量 

    19.局部性原理是什么?

    •  时间上的局限性:最近被访问的页在不久的将来还会被访问
    • 空间上的局限性:内存中被访问的页周围的页很可能被访问
    展开全文
  • 计算机操作系统知识点总结

    千次阅读 多人点赞 2019-01-26 13:25:15
    在大三学习操作系统时所做的总结,上传到论坛以备日后复习使用。 第一章操作系统概述 1)计算机软件是指程序和程序相关的文档的集合 2)按功能可把软件分为“系统软件”和“应用软件”两部分 系统软件:操作系统...
  • 上次我们讲到了关于我们专业课的知识框架问题,学完一遍专业课之后,我们要形成我们自己的知识体系,知道有哪些块,知道每一块有哪些知识点,知道哪些是重点、难点、易考点,易错点。现在到十月中旬是做一些针对性...
  • 于博士信号完整性揭秘知识点总结

    千次阅读 2018-12-27 22:29:51
    结合于博士信号完整性揭秘书籍以及配套视频的学习,使用思维导图工具总结了书中的知识点,特此分享出来,欢迎大家学习指正。信号完整性思维导图 ...
  • 东南大学《信号与系统》期末知识点整理
  • 信号与系统】复习总结笔记

    万次阅读 多人点赞 2016-12-18 15:05:00
    学习笔记(信号与系统) 来源:网络 第一章 信号系统 信号的概念、描述和分类 信号的基本运算 典型信号 系统的概念和分类 1、常常把来自外界的各种报道统称为消息; 信息是消息中有意义的内容;...
  • 考研复试操作系统知识点总结

    千次阅读 2020-03-25 21:13:15
    操作系统考研复试大全 1.什么是物理内存?什么是虚拟内存? 物理内存(内存条):当打开程序时,系统会自动的加载到物理内存上。 虚拟内存(硬盘):虚拟内存是代替物理内存行驶存储的功能,但无法代替物理内存行驶...
  • 接着上篇的总结,今天整理一下操作系统中另外两个功能:文件管理和I/O设备管理。 3.文件管理 在现代的Windows系统中,大量的数据需要通过文件的形式的进行管理保存。如何安全快速 处理这些数据和程序,就成为操作...
  • 操作系统学习-知识点总结(持续更新)

    千次阅读 多人点赞 2020-12-15 16:26:03
    操作系统是计算机系统中最基本的系统软件,能控制和管理整个计算机系统的硬件软件资源。 操作系统的基本特征包括并发、共享、虚拟和异步。并发和共享是操作系统两个最基本的特征。 操作系统的功能: 处理机管理:...
  • 重庆邮电大学801信号与系统考研最核心知识点总结目录 目录 ![在这里插入 下面是具体的描述: 看的不尽兴的同学,可以看图中的Q,加入信号与系统大家庭一起学习吧。
  • 信号与系统基础知识

    千次阅读 2019-03-27 07:47:04
    信号与系统基础知识
  • 微机原理接口技1、总线是计算机系统中互连各部件的一组公用信号线,负责在CPU存贮器和输入输出设备之间传送地址、数据和控制信息,是计算机系统的神经中枢。 总线包括 数据总线DB:双向,用来传递...术知识点总结
  • 计算机网络基础知识点总结

    万次阅读 多人点赞 2019-06-03 22:27:31
    数据传输系统:源系统(源点、发送器) --> 传输系统 --> 目的系统(接收器、终点) 通道: 单向通道(单工通道):只有一个方向通信,没有反方向交互,如广播 双向交替通信(半双工通信):通信双方都可发...
  • 学生自用笔记,学到哪更到哪,软考前会全部更完,知识点细节需查阅书籍,知识点总结来自数据库系统工程师教程第三版(王亚平主编 清华大学出版社) 第一章 计算机系统知识 1.1计算机系统基础知识 1.计算机系统由...
  • 操作系统知识点总结(第二章 进程的描述控制)

    千次阅读 多人点赞 2019-03-10 15:56:56
    第二章 进程的描述控制 程序顺序执行时的特征:顺序性、封闭性、可再现性 “并发”:在多道环境下,系统具有了许多比单道环境下更复杂的情况,我们把多道环境下的程序设计叫做并发程序设计。 程序并发执行...
  • 信号与系统》考研复习通用总结,考研复习资料,为大家提供方便,请多关注。 很高想分享给大家。希望大家有个好成绩。
  • 电子科技大学 信号与信息处理专业 硕博士考研专业课 《信号与系统》考研复习通用总结模板
  • 计算机组成原理核心知识点总结&面试笔试要点

    万次阅读 多人点赞 2019-08-13 14:04:07
    作为一名计算机专业的学生,计算机组成原理、计算机网络、操作系统这三门课程可以说是专业核心基础课,是至...而且很多互联网公司在笔试和面试中都会涉及到这三门课程的知识点,因此我通过视频学习对这三门课程就行...
  • 武汉大学《信号与系统》考研资料,需要考研的同学可以看一看

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 47,789
精华内容 19,115
关键字:

信号与系统知识点总结