操作系统
_宇宙浪子_
与其遥望远方,不如说走就走~
展开
-
进程调度
本文转自:http://blog.csdn.net/zyq0335/article/details/7558601一篇博客有一部分内容详细介绍:http://www.blogjava.net/killme2008/archive/2009/06/28/284459.html1 中断与处理机调度的关系: 中断与处理机管理密切相关的一个重要概念,确切的说,中断时实转载 2014-09-26 14:51:55 · 553 阅读 · 0 评论 -
内存池的实现(一)
内存池的实现(一)引言C/C++下内存管理是让几乎每一个程序员头疼的问题,分配足够的内存、追踪内存的分配、在不需要的时候释放内存——这个任务相当复杂。而直接使用系统调用malloc/free、new/delete进行内存分配和释放,有以下弊端:调用malloc/new,系统需要根据“最先匹配”、“最优匹配”或其他算法在内存空闲块表中查找一块空闲内存,调用free/delet转载 2014-09-30 09:50:57 · 431 阅读 · 0 评论 -
Linux系统调用
什么是系统调用?Linux内核内置了一组用于实现各种系统功能的函数,称为系统调用。用户可以在应用程序中调用系统调用来实现某种系统功能。从某种角度来看,系统调用和普通的函数调用非常相似。区别仅仅在于,系统调用由操作系统核心提供,运行于核心态;而普通的函数调用由函数库或用户自己提供,运行于用户态。系统调用把应用程序的请求传给内核,调用相应的的内核函数完成所需的处理,将处理结果返回给应用转载 2014-09-30 13:13:42 · 416 阅读 · 0 评论 -
硬中断和软中断
转自:本文主要内容:硬中断 / 软中断的原理和实现内核版本:2.6.37Author:zhangskd @ csdn blog 概述 从本质上来讲,中断是一种电信号,当设备有某种事件发生时,它就会产生中断,通过总线把电信号发送给中断控制器。如果中断的线是激活的,中断控制器就把电信号发送给处理器的某个特定引脚。处理器于是立即停止自己正在转载 2014-10-13 10:52:51 · 592 阅读 · 0 评论 -
linux信号处理(软中断)详细
1. 信号概念 信号是进程在运行过程中,由自身产生或由进程外部发过来的消息(事件)。信号是硬件中断的软件模拟(软中断)。每个信号用一个整型常量宏表示,以SIG开头,比如SIGCHLD、SIGINT等,它们在系统头文件中定义,也可以通过在shell下键入kill –l查看信号列表,或者键入man 7 signal查看更详细的说明。信号的生成来自内核,让内核生成信号的请求来自3个地方:l转载 2014-10-13 17:44:06 · 1744 阅读 · 0 评论 -
内核态 用户态 区别
内核态和用户态区别当一个任务(进程)执行系统调用而陷入内核代码中执行时,我们就称进程处于内核运行态(或简称为内核态)。此时处理器处于特权级最高的(0级)内核代码中执行。当进程处于内核态时,执行的内核代码会使用当前进程的内核栈。每个进程都有自己的内核栈。当进程在执行用户自己的代码时,则称其处于用户运行态(用户态)。即此时处理器在特权级最低的(3级)用户代码中运行。转载 2014-10-14 16:54:37 · 782 阅读 · 0 评论 -
linux 软连接和硬链接的区别
要说明这个问题,先说明下liunx下文件和目录的本质。事实上,在liunx上,目录也是文件的一种,它是储存了一张表的文件。例如有一个叫程序的文件夹,里面有两个文件1和2.在那张目录表内。它的内容是这样的名称 节点1 3382 228那么什么是节点呢?c语言我们都学过,我们简单地把节点号理解成一个数组的下标,把内存看成一个大数组,每个文件都可以看成一个数组中的一个元素,而知道了节转载 2014-12-07 21:36:27 · 682 阅读 · 0 评论 -
linux进程-线程-协程上下文环境的切换与实现
转自:https://blog.csdn.net/runner668/article/details/80512664一:进程-线程-协程简介进程和线程的主要区别是:进程独享地址空间和资源,线程则共享地址空间和资源,多线程就是多栈。1、进程进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位。每个进程都有自己的独立内存空间,不同进...转载 2018-12-12 19:55:02 · 501 阅读 · 0 评论 -
五种IO模型及设计模式
转自:http://www.coc88.com/h-nd-141.html在《Unix网络编程》一书中提到了五种IO模型,分别是:阻塞IO、非阻塞IO、多路复用IO、信号驱动IO以及异步IO。下面就分别来介绍一下这5种IO模型的异同。1.阻塞IO模型 最传统的一种IO模型,即在读写数据过程中会发生阻塞现象。 当用户线程发出IO请求之后,内核会去查看数据是否就绪,如果没有就绪...转载 2019-06-10 16:30:01 · 6202 阅读 · 1 评论 -
Linux内核参数之arp_ignore和arp_announce
转自:https://www.cnblogs.com/lipengxiang2009/p/7451050.html一、arp_ignore和arp_announce介绍 arp_ignore和arp_announce参数都和ARP协议相关,主要用于控制系统返回arp响应和发送arp请求时的动作。这两个参数很重要,特别是在LVS的DR场景下,它们的配置直接影响到DR转发是否正常。首先看...转载 2019-06-20 16:47:05 · 618 阅读 · 0 评论 -
【docker 底层知识】cgroup 原理分析
Cgroups提供了以下功能:限制进程组可以使用的资源(Resource limiting ):比如memory子系统可以为进程组设定一个memory使用上限,进程组使用的内存达到限额再申请内存,就会出发OOM(out of memory) 进程组的优先级控制(Prioritization ):比如可以使用cpu子系统为某个进程组分配cpu share 记录进程组使用的资源量...转载 2019-08-12 11:43:10 · 935 阅读 · 0 评论 -
Socket超时浅析
Socket超时浅析 套接字或插座(socket)是一种软件形式的抽象,用于表达两台机器间一个连接的“终端”。针对一个特定的连接,每台机器上都有一个“套接字”,可以想象它们之间有一条虚拟的“线缆”。JAVA有两个基于数据流的套接字类:ServerSocket,服务器用它“侦听”进入的连接;So...转载 2019-09-05 13:13:45 · 4442 阅读 · 0 评论 -
内存管理概述、内存分配与释放、地址映射机制
本文转自:内存管理概述、内存分配与释放、地址映射机制(mm_struct, vm_area_struct)、malloc/free 的实现注:本分类下文章大多整理自《深入分析linux内核源代码》一书,另有参考其他一些资料如《linux内核完全剖析》、《linux c 编程一站式学习》等,只是为了更好地理清系统编程和网络编程中的一些概念性问题,并没有深入地阅转载 2014-09-30 09:28:30 · 861 阅读 · 0 评论 -
Linux系统调用列表
Linux系统调用列表以下是Linux系统调用的一个列表,包含了大部分常用系统调用和由系统调用派生出的的函数。这可能是你在互联网上所能看到的唯一一篇中文注释的Linux系统调用列表,即使是简单的字母序英文列表,能做到这么完全也是很罕见的。按照惯例,这个列表以man pages第2节,即系统调用节为蓝本。按照笔者的理解,对其作了大致的分类,同时也作了一些小小的修改,删去了几个仅供内核转载 2014-11-12 09:37:17 · 399 阅读 · 0 评论 -
Linux 线程实现机制分析
浅谈POSIX线程的私有数据分类: linux2013-07-23 12:29 59人阅读 评论(0) 收藏 举报 当线程中的一个函数需要创建私有数据时,该私有数据在对函数的调用之间保持一致,数据能静态地分配在存储器中,当我们采用命名范围也许可以实现它使用在函数或是文件(静态),或是全局(EXTERN)。但是当涉及到线程时就不是那么简单了。在单线程程序中,我们转载 2014-09-30 09:57:38 · 435 阅读 · 0 评论 -
linux中断流程详解
本文转自:http://blog.csdn.net/yimu13/article/details/6803957异常体系比较复杂,但是linux已经准备了很多的函数和框架,但是因为中断是和具体的开发板相关,所以中断需要我们自己来处理一些方面,但是这也是很少的一部分,很多公用的处理函数内核已经实现,linux内核搭建了一个非常容易扩充的中断处理体系。中断系统结构涉及的方面转载 2014-09-26 15:00:46 · 412 阅读 · 0 评论 -
linux系统调用和库函数调用的区别
简明的回答:函数库调用是语言或应用程序的一部分,而系统调用是操作系统的一部分。 (1)库函数: 调用函数库的一个程序 在用户地址空间执行 它的运行时间属于“用户”时间 属于过程调用,开销较小 (2)系统调用: 调用系统内核的服务 在内核地址空间执行 运行时间属于“系统”时间 需要切换到内核上下文环境再切换回来,开销较大。 注:许多C函数库的程序是通过系统转载 2014-09-28 13:03:29 · 1067 阅读 · 0 评论 -
孤儿进程和僵尸进程
一、定义:什么是孤儿进程和僵尸进程僵尸进程:一个子进程在其父进程还没有调用wait()或waitpid()的情况下退出。这个子进程就是僵尸进程。孤儿进程:一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进程将成为孤儿进程。孤儿进程将被init进程(进程号为1)所收养,并由init进程对它们完成状态收集工作。僵尸进程将会导致资源浪费,而孤儿则不会。子进程持续转载 2014-09-28 13:24:16 · 606 阅读 · 0 评论 -
进程地址空间分布
转载请注明出处:http://blog.csdn.net/wangxiaolong_china 对于一个进程,其空间分布如下图所示:C程序一般分为:1.程序段:程序段为程序代码在内存中的映射.一个程序可以在内存中多有个副本.2.初始化过的数据:在程序运行值初已经对变量进行初始化的3.未初始化过的数据:在程序运行初未对变量进行初始化转载 2014-09-28 14:12:32 · 2286 阅读 · 0 评论 -
Linux异步机制
本文转自:http://blog.csdn.net/u012491514/article/details/26276171还没有细细整理。什么是异步通知:很简单,一旦设备准备好,就主动通知应用程序,这种情况下应用程序就不需要查询设备状态, 特像硬件上常提的“中断的概念”。 比较准确的说法其实应该叫做“信号驱动的异步I/O”,信号是在软件层次上对中断机制的一种模拟。阻塞I/O意味转载 2014-10-08 17:01:39 · 542 阅读 · 0 评论 -
从资源池和管理的角度理解物理内存
从资源池和管理的角度理解物理内存2013-11-09 18:35 2761人阅读 评论(12) 收藏 举报目录(?)[+]早就想搞一下内存问题了!这次正趁着搞bigmemory内核,可以写一篇文章了。本文旨在记录,不包含细节,细节的话,google,百度均可,很多人已经写了不少了。我只是按照自己的理解记录一下内存的点点滴滴而已,没有一家之言,不讨论,转载 2014-09-30 10:16:12 · 598 阅读 · 0 评论 -
守护进程的详解与创建
本文守护进程守护进程是一种后台运行并且独立于所有终端控制之外的进程。为什么需要有独立于终端之外的进程呢?首先,处于安全性的考虑我们不希望这些进程在执行中的信息在任何一个终端上显示。其次,我们也不希望这些进程被终端所产生的中断信号所打断。最后,虽然我们可以通过&将程序转为后台执行,我们有时也会需要程序能够自动将其转入后台执行。因此,我们需要守护进程。守护进程的启动要启转载 2014-09-30 10:33:08 · 477 阅读 · 0 评论 -
进程死锁及解决方案
本文死锁 操作系统 内容简介 在计算机系统中有很多一次只能由一个进程使用的资源,如打印机,磁带机,一个文件的I节点等。在多道程序设计环境中,若干进程往往要共享这类资源,而且一个进程所需要的资源不止一个。这样,就会出现若干进程竞争有限资源,又推进顺序不当,从而构成无限期循环等待的局面。这种状态就是死锁。系统发生死锁现象不仅浪费大量的系统资源,甚至导致整个系统崩溃,带来灾难转载 2014-09-30 10:01:36 · 525 阅读 · 0 评论 -
linux内核增加一个系统调用的方法
本文转自:http://blog.csdn.net/chenjieb520/article/details/7317629作者:chenjieb520给linux内核增加一个系统调用的方法 为了更加好地调试linux内核,笔者的实验均在mini6410的arm板上运行的。这样做的原因,第一是因为本人是学嵌入式的,第二是这样可以在arm板上进行实验,可以提转载 2014-09-30 13:17:23 · 2444 阅读 · 0 评论 -
操作系统内存,磁盘调度,进程调度算法
操作系统虚拟内存中的四种典型页替换算法(OPT,LRU,FIFO,Clock) 页面置换:在地址映射过程中,若在页面中发现所要访问的页面不再内存中,则产生缺页中断(page fault)。当发生缺页中断时操作系统必须在内存选择一个页面将其移出内存,以便为即将调入的页面让出空间。 典型的置换算法有四种,如下所示: OPT:最佳替换算法(optiona转载 2014-09-30 09:41:00 · 1069 阅读 · 0 评论 -
Linux内核源代码分析——fork()原理&多进程网络模型
本文转自:http://blog.csdn.net/freas_1990/article/details/9052239 今晚和一位500强的leader喝喝小酒吃吃烤鱼,生活乐无边。这位兄弟伙才毕业2年,已经做到管理层了,机遇和能力不可谓不好。喝酒之余,聊到Linux内核的两个问题——fork()、exec()的原理。 兄弟伙:fork()的原理是什么呢?转载 2014-09-30 10:29:57 · 733 阅读 · 0 评论 -
性能优化
性能优化目录性能优化 分析系统瓶颈 分析内存瓶颈 分析IO瓶颈 分析进程调用 优化程序代码 gprof使用步骤 其它工具 性能优化的核心是找出系统的瓶颈点,问题找到了,优化的工作也就完成了大半; 这里介绍的性能优化主要从两个层面来介绍:系统层面和程序层面;3.1. 分析系统瓶颈系统响应变慢,首先得定位大致的问题出在哪里,是IO瓶颈、CPU瓶颈、...转载 2019-09-09 16:37:02 · 271 阅读 · 0 评论