操作系统
文章平均质量分 64
Tian_Ex
这个作者很懒,什么都没留下…
展开
-
浅谈操作系统的内存管理
为了支持多进程(同一时间允许多个进程),解决直接操作内存带来的各种问题,引入了地址空间——允许每个进程都拥有自己的地址,硬件上需要两个寄存器——基址寄存器(保存进程开始地址)和界址寄存器(保存上界,防止内存溢出)。当我们执行一条指令,实际的物理内存地址是根据基址和偏移量来计算得到。而每个进程拥有的地址空间是不同的,因此也就使得多进程成为可能。考虑到内存大小很难容纳下所有并发执行的进程—原创 2016-12-03 18:53:40 · 810 阅读 · 0 评论 -
子进程和线程的区别
相同点:二者都具有ID,一组寄存器,状态,优先级以及所要遵循的调度策略;每个进程都有一个进程控制块,线程也拥有一个线程控制块;线程和子进程共享父进程中的资源;线程和子进程独立于它们的父进程,竞争使用处理器资源;线程和子进程的创建者可以在线程和子进程上实行某些控制,比如,创建者可以取消、挂起、继续和修改线程和子进程的优先级;线程和子进程可以改变其属性并创建新的资源;不同的:原创 2016-11-22 14:51:37 · 2261 阅读 · 0 评论 -
Select和Epoll
当有数以万计的并发连接存在时,可能每一毫秒只有数百个活跃连接,当调用select返回活跃连接时,它需要将所有待监控连接传入,且需要在内核中遍历所有传递进来的fd,同时在高并发下会频繁调用。而epoll使用了三个方法来完成select要做的事情,这样就区分了频繁调用和不频繁调用的操作;比如对于创建epoll描述的epoll_create方法和用于添加/删除待监控连接的epoll_ctrl方法是不太频原创 2016-11-18 10:12:26 · 345 阅读 · 0 评论 -
I/O复用
什么是I/O复用?操作系统为你提供一个功能,当内核发现进程指定的一个或多个I/O条件就绪时(即输入已经准备好被读取,获取描述符能够接受更多的输出),他就会给进程一个通知。这种功能就称之为“I/O复用”。I/O复用主要是由select和poll两个函数提供。I/O复用典型使用在一下场景:当客户处理多个描述符(通常是交互式输入和网络套接字)时,必须使用I/O复用。一个客原创 2016-01-13 11:55:28 · 789 阅读 · 0 评论 -
Linux内核详解(一)
Linux内核描述通常Linux内核有负责响应中断的中断服务程序,负责管理多个进程从而分享cpu时间的调度程序,负责管理进程地址空间的内存管理程序和网络、进程间通信等系统服务程序组成。在系统中运行的应用程序通过系统调用来与内核通信,通常是调用库函数(比如C库函数),再由库函数通过系统调用让内核完成各种不同任务。另外库函数和系统调用并不一定是一一对应的。内核还要负责管理系统的硬件设备,当硬件原创 2016-11-22 21:32:34 · 2318 阅读 · 0 评论 -
Linux内核详解(二)
Linux调度程序Linux调度程序负责决定执行哪个(处于可运行状态的)进程,何时执行以及执行多长时间。多进程操作系统分为两种:抢占式和非抢占式;Linux实现了抢占式机制,即有调度程序决定何时挂起一个正在运行的进程,而让其他进程能够执行;非抢占式下的进程除非自己主动挂起(yield),否则将会一直执行。调度策略决定何时让什么进程运行。进程可以被分为I/O密集型(比如G原创 2016-11-22 22:56:48 · 493 阅读 · 0 评论 -
Linux内核详解(三)
Linux中断处理中断使硬件发出通知给cpu,cpu接收到中断后即停止当前工作并立刻向操作系统告知此信号的到来(中断控制器连接着多路中断管线,当接收到一个中断后,中断控制器便向cpu发送一个电信号)。硬件设备生成中断并不考虑与处理器的时钟同步——中断随时可以产生,内核随时被中断。不同的设备对应不同的中断,每个中断都有一个唯一的数字标志,这样操作系统就可以给不同的中断提供对应的中断处理程序。原创 2016-11-23 16:04:22 · 399 阅读 · 0 评论 -
Linux内核详解(四)
Linux内核时间和定时器管理硬件为内核提供了一个系统定时器用来计算时间,系统定时器以某种频率自动触发时钟中断,该频率可通过编程预定,称作节拍率。当时钟中断发生时,内核就通过一种特殊的中断处理程序对其进行处理。因为预编的节拍率对内核来说是可知的,所以内核知道连续两次时钟中断的间隔时间(节拍),它等于节拍率分之一秒。内核就是通过这种已知的时钟间隔来计算墙上(实际)时间和系统运行时间的。另外内核也原创 2016-11-23 21:57:09 · 527 阅读 · 0 评论 -
Linux内核详解(五)
Linux块I/O层系统能够随机访问固定大小数据块的硬件设备称作块设备,比如硬盘/闪存;按照字符流的方式被有序访问就是字符设备,比如键盘。两者的区别在于是否可以随机访问数据。块设备中最小的可寻址单元是扇区,扇区大小一般是2的整数倍(512B),虽然物理磁盘寻址是以扇区为基本单位的,但内核执行的所有磁盘操作都是以块为基本单位的。块是文件系统的一种抽象——只能基于块来访问文件系统。内核原创 2016-11-24 13:04:31 · 566 阅读 · 0 评论