操作系统
Beyond_2016
这个作者很懒,什么都没留下…
展开
-
操作系统知识点总结
绪论操作系统的功能用户接口:命令接口、程序接口、图形接口处理机管理:进程控制、进程同步、进程通信、进程调度存储管理:内存分配、内存保护、地址映射、内存扩充设备管理:缓冲管理、设备分配、设备处理、虚拟设备管理文件管理:文件存储空间管理、目录管理、文件读写管理、文件保护、文件系统的安全性、文件接口操作系统的结构内核(kernel)与外壳(shell)从整体上讲,操作...原创 2018-07-24 16:35:47 · 1295 阅读 · 0 评论 -
分段和分页内存管理
两者描述 打个比方,比如说你去听课,带了一个纸质笔记本做笔记。笔记本有100张纸,课程有语文、数学、英语三门,对于这个笔记本的使用,为了便于以后复习方便,你可以有两种选择。 第一种是,你从本子的第一张纸开始用,并且事先在本子上做划分:第2张到第30张纸记语文笔记,第31到60张纸记数学笔记,第61到100张纸记英语笔记,最后在第一张纸做个列表,记录着三门笔记各...原创 2018-08-02 14:18:03 · 1950 阅读 · 0 评论 -
分页和分段有什么区别?
段是信息的逻辑单位,它是根据用户的需要划分的,因此段对用户是可见的 ;页是信息的物理单位,是为了管理主存的方便而划分的,对用户是透明的。 段的大小不固定,有它所完成的功能决定;页大大小固定,由系统决定 段向用户提供二维地址空间;页向用户提供的是一维地址空间 段是信息的逻辑单位,便于存储保护和信息的共享,页的保护和共享受到限制。如果你对分页和分段还不太了解,建议阅读:(分段和分页内存管理:h...原创 2018-08-02 14:20:04 · 6538 阅读 · 0 评论 -
常用的操作系统进程调度算法
一、先来先服务和短作业(进程)优先调度算法1.先来先服务调度算法先来先服务(FCFS)调度算法是一种最简单的调度算法,该算法既可用于作业调度,也可用于进程调度。当在作业调度中采用该算法时,每次调度都是从后备作业队列中选择一个或多个最先进入该队列的作业,将它们调入内存,为它们分配资源、创建进程,然后放入就绪队列。在进程调度中采用FCFS算法时,则每次调度是从就绪队列中选择一个最先进入该队列的...原创 2018-08-02 14:46:38 · 284 阅读 · 0 评论 -
进程调度算法与同步机制
1、操作系统中进程调度策略有哪几种?FCFS(先来先服务),优先级,时间片轮转,多级反馈如果你想深入的了解这几种调度策略,推荐阅读:(常用的操作系统进程调度算法:https://blog.csdn.net/beyond_2016/article/details/81358736)2、说一说进程同步有哪几种机制原子操作、信号量机制、自旋锁管程、会合、分布式系统如果你想深入的了解这...原创 2018-08-02 14:51:45 · 475 阅读 · 0 评论 -
进程同步的几种机制
1)信号量机制: 一个信号量只能置一次初值,以后只能对之进行p操作或v操作。由此也可以看到,信号量机制必须有公共内存,不能用于分布式操作系统,这是它最大的弱点。2)自旋锁: 旋锁是为了保护共享资源提出的一种锁机制。调用者申请的资源如果被占用,即自旋锁被已经被别的执行单元保持,则调用者一直循环在那里看是否该自旋锁的保持着已经释放了锁自旋锁是一种比较低级的保护数据结构和代码片段的原始方式,可能...原创 2018-08-02 14:53:48 · 1376 阅读 · 0 评论 -
死锁的处理基本策略和常用方法
解决死锁的基本方法如下:预防死锁、避免死锁、检测死锁、解除死锁解决四多的常用策略如下:鸵鸟策略、预防策略、避免策略、检测与解除死锁 死锁:指多个进程因竞争共享资源而造成的一种僵局,若无外力作用,这些进程都将永远不能再 向前推进。安全状态与不安全状态:安全状态指系统能按某种进程顺序来为每个进程分配其所需资源,直 至最大需求,使每个进程都可顺利完成。若系统不存在这样一个序列, ...原创 2018-08-02 14:59:02 · 10723 阅读 · 1 评论 -
操作系统面试题
1、线程与进程的区别联系2、进程通信方式有哪些?3、同步的方式有哪些?4、ThreadLocal与其它同步机制的比较5、进程死锁的条件 第一题:(1)线程是进程的一个实体,一个进程可以拥有多个线程,多个线程也可以并发执行。一个没有线程的进程也可以看做是单线程的,同样线程也经常被看做是一种轻量级的进程。并且进程可以不依赖于线程而单独存在,而线程则不然。(2)进程是并发...原创 2018-08-03 09:59:44 · 201 阅读 · 0 评论 -
进程间的几种通信方式
进程间通信就是在不同进程之间传播或交换信息,那么不同进程之间存在着什么双方都可以访问的介质呢?进程的用户空间是互相独立的,一般而言是不能互相访问的,唯一的例外是共享内存区。但是,系统空间却是“公共场所”,所以内核显然可以提供这样的条件。除此以外,那就是双方都可以访问的外设了。在这个意义上,两个进程当然也可以通过磁盘上的普通文件交换信息,或者通过“注册表”或其它数据库中的某些表项和记录交换信息。广...原创 2018-08-03 09:59:59 · 584 阅读 · 0 评论 -
解决死锁的基本方法
死锁:指多个进程因竞争共享资源而造成的一种僵局,若无外力作用,这些进程都将永远不能再 向前推进。安全状态与不安全状态:安全状态指系统能按某种进程顺序来为每个进程分配其所需资源,直 至最大需求,使每个进程都可顺利完成。若系统不存在这样一个序列, 则称系统处于不安全状态。 产生死锁的原因:(1)竞争系统资源 (2)进程的推进顺序不当产生死锁的必要条件:互斥条件:进程要求对所分配的...原创 2018-08-03 10:00:06 · 6397 阅读 · 0 评论 -
操作系统笔试题汇总
1、在段页式存储管理中,其虚拟地址空间是()A、一维 B、二维 C、三维 D、层次答案:B2、采用( )不会产生内部碎片(“内零头”)A、分页式存储管理 ...原创 2018-08-03 10:00:16 · 849 阅读 · 0 评论 -
进程有哪几种状态?
就绪状态:进程已获得除处理机以外的所需资源,等待分配处理机资源 运行状态:占用处理机资源运行,处于此状态的进程数小于等于CPU数 阻塞状态: 进程等待某种条件,在条件满足之前无法执行如果你对进程的几种状态以及中间的装换不太了解,建议阅读:(进程的三种状态及转换:https://blog.csdn.net/beyond_2016/article/details/81357705)...原创 2018-08-02 14:05:18 · 4149 阅读 · 1 评论 -
进程的三种状态及转换
为了对进程从产生到消亡的整个过程进行跟踪和描述,就需要定义各种进程的各种状态并制定相应的状态转换策略,以此来控制进程的运行。 不同的操作系统对进程的状态解释不同,但是最基本的状态都是一样的。包括一下三种: 运行态:进程占用CPU,并在CPU上运行; 就绪态:进程已经具备运行条件,但是CPU还没有分配过来; 阻塞态:进程因等待某件事发生而暂时不能...原创 2018-08-02 14:01:21 · 17307 阅读 · 0 评论 -
经典算法题:谷歌面试经典题目
1.1 判断一个字符串中的字符是否唯一1.2 字符串翻转1.3 去除字符串中重复字符1.8 利用已知函数判断字符串是否为另一字符串的子串2.1 从链表中移除重复结点2.2 实现一个算法从一个单链表中返回倒数第n个元素2.3 给定链表中间某结点指针,删除链表中该结点2.4 求由两个链表结点组成的数之和2.5 给定一个循环链表,实现一个算法返回这个环的开始结点3.1...原创 2018-08-14 15:31:30 · 1656 阅读 · 0 评论 -
内存对齐
内存字节对齐对齐的三个原则如何内存对齐?sizeof的结果怎么来的?请记住以下3条原则:(在没有#pragma pack宏的情况下)原则1:结构(struct)或联合(union)的数据成员,存储的起始位置要从该成员大小或者成员的子成员大小(只要该成员有子成员,比如说是数组,结构体等)的整数倍开始(比如:假设一个数据成员为int,int在32位机上为4字节,则要从4的整数倍地址开始存储...原创 2018-07-26 16:23:40 · 814 阅读 · 0 评论 -
内存对齐与内存分配原则
首先讲一个概念—-内存对齐一种提高内存访问速度的策略,cpu在访问未对其的内存需要经过两次内存访问,而经过内存对齐一次就可以了。(?)打个比方就是:操作系统在访问内存时,每次读取一定的长度(这个长度是系统默认的对其系数),程序中你也可以自己设定对齐系数,告诉编译器你想怎么对齐,可用#pargam pack(n),指定n为对其系数。但是当没有了内存对齐,cpu在访问一个变量时候,可能会访问两...原创 2018-07-26 16:47:08 · 570 阅读 · 0 评论 -
操作系统中10种页面置换算法的总结
页面置换算法总结当发生缺页中断时,操作系统必须将内存中选择一个页面置换出去为要调入的新页面腾出空间。 那究竟选择哪一个淘汰哪一个一面比较好呢?1. 最优页面置换算法选择最长时间内不会被访问的页面丢掉。越久越好。但是理论上不能实现。2. 最近未使用页面置换算法(NRU)算法找到最久没有使用的页面置换出去,页面被访问时设置R位,修改时设置M位,R位定期清...原创 2018-07-27 09:45:24 · 775 阅读 · 0 评论 -
几种常见页面置换算法分析
评价一个算法的优劣,可通过在一个特定的存储访问序列(页面走向)上运行它,并计算缺页数量来实现。1 先入先出法(FIFO)最简单的页面置换算法是先入先出(FIFO)法。这种算法的实质是,总是选择在主存中停留时间最长(即最老)的一页置换,即先进入内存的页,先退出内存。理由是:最早调入内存的页,其不再被使用的可能性比刚调入内存的可能性大。建立一个FIFO队列,收容所有在内存中的页。被置换页面总是...原创 2018-07-27 09:45:12 · 5417 阅读 · 0 评论 -
线程同步的几种方式
进程中线程同步的四种常用方式:1、 临界区(CCriticalSection)当多个线程访问一个独占性共享资源时,可以使用临界区对象。拥有临界区的线程可以访问被保护起来的资源或代码段,其他线程若想访问,则被挂起,直到拥有临界区的线程放弃临界区为止。具体应用方式:1、 定义临界区对象CcriticalSection g_CriticalSection;2、 在访问共享资源(代码或变量...原创 2018-07-31 14:52:12 · 239 阅读 · 0 评论 -
进程间的几种通信方式的比较和线程间的几种通信方式
近日想总结下进程间,线程间的通信方式,在网上搜索了下,感觉写的很好,照搬过来,当做加深记忆。几种进程间的通信方式(1) 管道(pipe):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有血缘关系的进程间使用。进程的血缘关系通常指父子进程关系。(2)有名管道(named pipe):有名管道也是半双工的通信方式,但是它允许无亲缘关系进程间通信。(3)信号量(semopho...原创 2018-07-31 15:43:58 · 1525 阅读 · 0 评论 -
缓冲区溢出攻击
缓冲区溢出(Buffer Overflow)是计算机安全领域内既经典而又古老的话题。随着计算机系统安全性的加强,传统的缓冲区溢出攻击方式可能变得不再奏效,相应的介绍缓冲区溢出原理的资料也变得“大众化”起来。其中看雪的《0day安全:软件漏洞分析技术》一书将缓冲区溢出攻击的原理阐述得简洁明了。本文参考该书对缓冲区溢出原理的讲解,并结合实际的代码实例进行验证。不过即便如此,完成一个简单...原创 2018-07-31 17:06:36 · 13213 阅读 · 2 评论 -
什么是缓冲区溢出?有什么危害?其原因是什么?
缓冲区溢出是指当计算机向缓冲区填充数据时超出了缓冲区本身的容量,溢出的数据覆盖在合法数据上。危害有以下两点:程序崩溃,导致拒绝额服务 跳转并且执行一段恶意代码造成缓冲区溢出的主要原因是程序中没有仔细检查用户输入。如果你想深入了解缓冲区溢出,推荐阅读:https://blog.csdn.net/beyond_2016/article/details/81316801...原创 2018-08-01 10:47:28 · 8897 阅读 · 0 评论 -
死锁产生的原因和解锁的方法
一.产生死锁的四个必要条件:(1) 互斥条件:一个资源每次只能被一个进程使用。(2) 请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。(3) 不剥夺条件:进程已获得的资源,在末使用完之前,不能强行剥夺。(4) 循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系。二 锁的分类 锁的类别有两种分法: 1. 从数据库系统的角度来看:分为独占锁(即排它锁...原创 2018-08-01 10:57:32 · 1045 阅读 · 0 评论 -
什么是死锁?死锁产生的条件?
在两个或者多个并发进程中,如果每个进程持有某种资源而又等待其它进程释放它或它们现在保持着的资源,在未改变这种状态之前都不能向前推进,称这一组进程产生了死锁。通俗的讲就是两个或多个进程无限期的阻塞、相互等待的一种状态。死锁产生的四个条件(有一个条件不成立,则不会产生死锁)互斥条件:一个资源一次只能被一个进程使用 请求与保持条件:一个进程因请求资源而阻塞时,对已获得资源保持不放 不剥夺条件...原创 2018-08-01 10:58:59 · 1999 阅读 · 0 评论 -
操作系统常见面试题大总结
1、什么是进程(Process)和线程(Thread)?有何区别? 进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位。线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程...原创 2018-08-03 10:00:25 · 895 阅读 · 0 评论