码迷,mamicode.com
首页 > 其他好文 > 详细

操作系统(一)

时间:2018-12-16 18:45:22      阅读:173      评论:0      收藏:0      [点我收藏+]

标签:ioctl   转换   部分   不可   特征   很多   实体   umask   blob   

操作系统

一、基本特征:

  1.并发:在一段时间能运行多个程序。

     并行:同一时刻能运行多个指令,需要硬件支持,如同多流水线或多处理器。

   操作系统通过引入进程和线程,使得程序能够并发运行。

  2.共享:系统中的资源可以被多个并发进程共同使用。

     两种共享方式:互斥共享--又称为临界资源,例如打印机,在同一时间只允许一个进程访问

          同时共享

  3.虚拟:虚拟技术把一个物理实体转换为多个逻辑实体。

   两种虚拟技术:时分复用技术--多个进程能在同一个处理器上并发执行,让每个进程轮流占有处理器,每次只执行一小个时间片并快速切换。

          空分复用技术--虚拟内存,将物理内存抽象为地址空间,每个进程都有各自的地址空间。地址空间和物理内存使用页进行交换,地址空间的页并不需要全部在物理内存                 中,当使用到一个没有在物理内存的页时,执行页面置换算法,将该页置换到内存中。

  4.异步:进程不是一次性执行完毕,而是走走停停,以不可知的速度向前推进。

二、基本功能

  1.进程管理 2.内存分配 3.文件管理 4.设备管理

三、系统调用

  如果一个进程在用户态需要使用内核态的功能,就进行系统调用从而陷入内核,由操作系统代为完成。

  

  Linux 的系统调用主要有以下这些:

TaskCommands
进程控制 fork(); exit(); wait();
进程通信 pipe(); shmget(); mmap();
文件操作 open(); read(); write();
设备操作 ioctl(); read(); write();
信息维护 getpid(); alarm(); sleep();
安全

chmod(); umask(); chown();

    

四、大内核和微内核

  1.大内核:是将操作系统功能作为一个紧密结合的整体放到内核。由于各模块共享信息,因此有很高的性能。

  2.微内核:由于操作系统不断复杂,因此将一部分操作系统功能移出内核,从而降低内核的复杂性。移出的部分根据分层的原则划分成若干服务,相互独立。

在微内核结构下,操作系统被划分成小的、定义良好的模块,只有微内核这一个模块运行在内核态,其余模块运行在用户态。因为需要频繁地在用户态和核心态之间进行切换,所以会有一定的性能损失。

 

五、中断分类

  1.外中断:由 CPU 执行指令以外的事件引起,如 I/O 完成中断,表示设备输入/输出处理已经完成,处理器能够发送下一个输入/输出请求。此外还有时钟中断、控制台中断等。

  2.异常:由 CPU 执行指令的内部事件引起,如非法操作码、地址越界、算术溢出等。

  3.陷入:在用户程序中使用系统调用。

 

进程管理

  1.进程:是资源分配的基本单位。进程控制块 (Process Control Block, PCB) 描述进程的基本信息和运行状态,所谓的创建进程和撤销进程,都是指对 PCB 的操作。

下图显示了 4 个程序创建了 4 个进程,这 4 个进程可以并发地执行

技术分享图片

 

  2.线程:线程是独立调度的基本单位。一个进程中可以有多个线程,它们共享进程资源。QQ 和浏览器是两个进程,浏览器进程里面有很多线程,例如 HTTP 请求线程、事件响应线程、渲染线程等等,线程的并发执行使得在浏览器中点击一个新链接从而发起 HTTP 请求时,浏览器还可以响应用户的其它事件。

技术分享图片

 

操作系统(一)

标签:ioctl   转换   部分   不可   特征   很多   实体   umask   blob   

原文地址:https://www.cnblogs.com/tutwo/p/10127439.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!