操作系统 基础知识

1:什么是操作系统
操作系统(英语:Operating System,简称OS)是管理计算机硬件与软件资源的程序,是计算机系统的内核与基石;
操作系统本质上是运行在计算机上的软件程序 ;
为用户提供一个与系统交互的操作界面 ;
操作系统分内核与外壳(我们可以把外壳理解成围绕着内核的应用程序,而内核就是能操作硬件的程序)。
2:线程与进程介绍
请查看:Java 并发基础知识
3:进程间的通信的几种方式?
1:管道/匿名管道(Pipes) :
    用于具有亲缘关系的父子进程间或者兄弟进程之间的通信。
    
2:有名管道(Names Pipes) : 
    匿名管道由于没有名字,只能用于亲缘关系的进程间通信。
    为了克服这个缺点,提出了有名管道。
    有名管道严格遵循先进先出(first in first out)。
    有名管道以磁盘文件的方式存在,可以实现本机任意两个进程通信。
    
3:信号(Signal) :
    信号是一种比较复杂的通信方式,用于通知接收进程某个事件已经发生;
    
4:消息队列(Message Queuing) :
    消息队列是消息的链表,具有特定的格式,存放在内存中并由消息队列标识符标识。
    管道和消息队列的通信数据都是先进先出的原则。
    与管道(无名管道:只存在于内存中的文件;有名管道:存在于实际的磁盘介质或者文件系统)不同的是消息队列存放在内核中;
    只有在内核重启(即,操作系统重启)或者显示地删除一个消息队列时,该消息队列才会被真正的删除。
    消息队列可以实现消息的随机查询,消息不一定要以先进先出的次序读取,也可以按消息的类型读取.比FIFO更有优势。
    消息队列克服了信号承载信息量少,管道只能承载无格式字 节流以及缓冲区大小受限等缺。
    
5: 信号量(Semaphores) :
    信号量是一个计数器,用于多进程对共享数据的访问,信号量的意图在于进程间同步。
    这种通信方式主要用于解决与同步相关的问题并避免竞争条件。

6:共享内存(Shared memory) :
    使得多个进程可以访问同一块内存空间,不同进程可以及时看到对方进程中对共享内存中数据得更新。
    这种方式需要依靠某种同步操作,如互斥锁和信号量等。可以说这是最有用的进程间通信方式。

7:套接字(Sockets) : 
此方法主要用于在客户端和服务器之间通过网络进行通信。
套接字是支持TCP/IP的网络通信的基本操作单元,可以看做是不同主机之间的进程进行双向通信的端点;
简单的说就是通信的两方的一种约定,用套接字中的相关函数来完成通信过程。
3:线程同步的方式有哪些?
1:互斥量(Mutex):
    采用互斥对象机制,只有拥有互斥对象的线程才有访问公共资源的权限。
    因为互斥对象只有一个,所以可以保证公共资源不会被多个线程同时访问。
    比如 Java 中的 synchronized 关键词和各种 Lock 都是这种机制;

2:信号量(Semphares) :
    它允许同一时刻多个线程访问同一资源,
    但是需要控制同一时刻访问此资源的最大线程数量;

3:事件(Event) :Wait/Notify:
    通过通知操作的方式来保持多线程同步,
    还可以方便的实现多线程优先级的比较;
4:线程同步的方式有哪些?
1:先到先服务(FCFS)调度算法 : 
    从就绪队列中选择一个最先进入该队列的进程为之分配资源,
    使它立即执行并一直执行到完成或发生某事件而被阻塞放弃占用CPU时再重新调度。
2:短作业优先(SJF)的调度算法 : 
    从就绪队列中选出一个估计运行时间最短的进程为之分配资源,
    使它立即执行并一直执行到完成或发生某事件而被阻塞放弃占用CPU时再重新调度。

3:时间片轮转调度算法 : 
    时间片轮转调度是一种最古老,最简单,最公平且使用最广的算法,又称RR(Round robin)调度。
    每个进程被分配一个时间段,称作它的时间片,即该进程允许运行的时间。

4:优先级调度 : 
    为每个流程分配优先级,首先执行具有最高优先级的进程,依此类推。
    具有相同优先级的进程以FCFS方式执行。
    可以根据内存要求,时间要求或任何其他资源要求来确定优先级。

5:多级反馈队列调度算法 :
    前面介绍的几种进程调度的算法都有一定的局限性。如短进程优先的调度算法,仅照顾了短进程而忽略了长进程 。
    多级反馈队列调度算法既能使高优先级的作业得到响应又能使短作业(进程)迅速完成。
    因而它是目前被公认的一种较好的进程调度算法,UNIX操作系统采取的便是这种调度算法。
5:什么是虚拟内存(Virtual Memory)?
很多时候我们使用点了开了很多占内存的软件,这些软件占用的内存可能已经远远超出了我们电脑本身具有的物理内存。

为什么可以这样呢? 
正是因为 虚拟内存 的存在,通过 虚拟内存 可以让程序可以拥有超过系统物理内存大小的可用内存空间。

虚拟内存为每个进程提供了一个一致的、私有的地址空间;
实际上,它通常是被分隔成多个物理内存碎片,还有部分暂时存储在外部磁盘存储器上,在需要时进行数据交换。
但 它让每个进程产生了一种自己在独享主存的错觉:
每个进程拥有一片连续完整的内存空间,这样会更加有效地管理内存并减少出错。

应用:使用这种技术的系统使得大型程序的编写变得更容易,对真正的物理内存(例如RAM)的使用也更有效率;
大多数操作系统都使用了虚拟内存,如Windows家族的“虚拟内存”;Linux的“交换空间”;

虚拟内存的重要意义是它定义了一个连续的虚拟地址空间,并且 把内存扩展到硬盘空间,
而不要是单纯认为虚拟内存只是“使用硬盘空间来扩展内存“的技术。
6:CPU寻址?虚拟地址空间?为什么需要虚拟地址空间?
现代处理器使用的是一种称为 虚拟寻址(Virtual Addressing) 的寻址方式。
使用虚拟寻址,CPU需要将虚拟地址翻译成物理地址,这样才能访问到真实的物理内存。 
实际上完成虚拟地址转换为物理地址转换的硬件是 CPU 中含有一个被称为 内存管理单元(Memory Management Unit, MMU)的硬件。
MMU 需要借助存放在内存中的页表来动态翻译虚拟地址,该页表由操作系统管理。

通过虚拟地址访问内存有以下优势:
1:程序可以使用一系列相邻的虚拟地址来访问物理内存中不相邻的大内存缓冲区。

2:程序可以使用一系列虚拟地址来访问大于可用物理内存的内存缓冲区。
    当物理内存的供应量变小时,内存管理器会将物理内存页(通常大小为 4 KB)保存到磁盘文件。
    数据或代码页会根据需要在物理内存与磁盘之间移动。
    
3:不同进程使用的虚拟地址彼此隔离。
    一个进程中的代码无法更改正在由另一进程或操作系统使用的物理内存。
7:页面置换算法的作用?常见的页面置换算法有哪些?
什么是缺页:
地址映射过程中,若在页面中发现所要访问的页面不在内存中,则产生缺页中断 。     
如处理缺页:
当发生缺页中断时,如果操作系统内存中没有空闲页面,则操作系统 必须在内存选择一个页面将其移出内存,以便为即将调入的页面让出空间。
而用来选择淘汰哪一页的规则叫做页面置换算法,页面置换算法的作用是 实现虚拟存储管理。

1:OPT页面置换算法(最佳页面置换算法) :
    理想情况,不可能实现,一般作为衡量其他置换算法的方法。

2:FIFO页面置换算法(先进先出页面置换算法) : 
    总是淘汰最先进入内存的页面,即选择在内存中驻留时间最久的页面进行淘汰。

3:LRU页面置换算法(最近未使用页面置换算法) :
    LRU(Least Currently Used)算法赋予每个页面一个访问字段,用来记录一个页面自上次被访问以来所经历的时间T,
    当须淘汰一个页面时,选择现有页面中其T值最大的,即最近最久未使用的页面予以淘汰。

4:LFU页面置换算法(最少使用页面排序算法) : 
    LFU(Least Frequently Used)算法会让系统维护一个按最近一次访问时间排序的页面链表;
    链表首节点是最近刚刚使用过的页面,链表尾节点是最久未使用的页面。
    访问内存时,找到相应页面,并把它移到链表之首。
    缺页时,置换链表尾节点的页面。也就是说内存内使用越频繁的页面,被保留的时间也相对越长。
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,088评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,715评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,361评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,099评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 60,987评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,063评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,486评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,175评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,440评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,518评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,305评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,190评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,550评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,880评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,152评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,451评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,637评论 2 335

推荐阅读更多精彩内容