
操作系统
JMW1407
这个作者很懒,什么都没留下…
展开
-
【Linux】守护进程( Daemon)的定义,作用,创建流程
守护进程( Daemon)守护进程( Daemon)1、定义2、作用3、创建流程4、实例参考守护进程( Daemon)1、定义守护进程是运行在后台的一种特殊进程,它独立于控制终端并且周期性地执行某种任务或循环等待处理某些事件的发生;它不需要用户输入就能运行而且提供某种服务,不是对整个系统就是对某个用户程序提供服务。Linux系统的大多数服务器就是通过守护进程实现的。守护进程一般在系统启动时开始运行,除非强行终止,否则直到系统关机才随之一起停止运行;守护进程一般都以root用户权限运行,因为要使用原创 2020-09-07 08:25:53 · 25884 阅读 · 0 评论 -
操作系统的程序内存结构 —— data和bss为什么需要分开,各自的作用
操作系统的程序内存结构1、操作系统的程序内存结构1.1、程序编译运行过程1.2、程序的内存分布1.3、.data和.bss分开的理由1.4、程序的指令和数据分开原因:参考1、操作系统的程序内存结构1.1、程序编译运行过程源代码(source coprede)→预处理器(processor)→编译器(compiler)→汇编程序(assembler)→目标程序(object code)→链接器(Linker)→可执行程序(executables)分配程序执行所需的栈空间、代码段、静态存储区、映射堆空原创 2020-08-25 07:53:58 · 5714 阅读 · 1 评论 -
什么是信号(signal)?信号的处理机制?利用信号进行简单的进程通信过程设计(c++)?
信号(signal)信号(signal)1、背景2、定义3、处理机制3.1、信号来源3.2、信号的响应动作(前32种)3.3、信号在内核中的表示3.4、信号处理流程3.4.0、信号发送3.4.1、信号接收3.4.2、信号的检测3.4.3、信号的查看与处理3.4.4、简单实例过程说明4、相关API函数4.1、信号发送函数5、实验测试参考信号(signal)1、背景信号(Signal)主要用来通知进程某个特定事件的发生,或者是让进程执行某个特定的处理函数。所以,信号可以说是进程控制的一部分。我们以普通的原创 2020-08-02 11:14:53 · 4373 阅读 · 0 评论 -
什么是共享内存?在内存中的具体位置?shmget的具体使用原理以及其他关联函数(shmat ( ),shmdt ( ),shmctl ( ))、以及C++应用案例?mmap和shm的区别?
共享内存(shared memory)共享内存1、背景2、定义3、两种方式(mmap上一篇博客说明)3.2、shmget3.2.1、使用流程和基本原理3.2.2、函数原型(创建共享内存)3.2.3、其他相关AP函数3.2.3.1、shmat ( ):挂接共享内存3.2.3.2、shmdt ( ):去关联共享内存3.2.3.3、shmctl ( ):控制共享内存3.2.4、应用实例4、mmap和shm的区别参考共享内存1、背景当存在客户-服务程序中复制文件时候,其数据流如下,要经历四次数据复制,开销很大原创 2020-08-01 18:53:06 · 3524 阅读 · 0 评论 -
什么是共享内存?在内存中的具体位置?共享内存相关API,mmap 的具体使用原理、以及C++应用案例?
共享内存(shared memory共享内存共享内存共享内存允许两个或多个进程共享一给定的存储区,因为数据不需要来回复制,所以是最快的一种进程间通信机制。共享内存可以通过mmap()映射普通文件 (特殊情况下还可以采用匿名映射)机制实现,也可以通过系统V共享内存机制实现。共享内存是内核为进程创建的一个特殊内存段,它将出现在进程自己的地址空间中,其它进程可以将同一段共享内存连接(attach)到自己的地址空间。这是最快的进程间通信方式,但是不提供任何同步功能(需要我们信号量实现)。https://b原创 2020-08-01 00:23:30 · 8131 阅读 · 0 评论 -
一文让你明白,什么是管道(pipe)?进程之间利用管道进行通信的具体流程?以及C++简单利用管道API函数的使用案例。
进程通讯方式——管道(pipe)管道(pipe)1、定义(水管(pipe))2、分类2.1、匿名管道2.1.1、特征2.1.2、父子进程通信过程解析2.1.3、API函数的使用以及注意点2.1.4、应用实例2.2、命名管道2.2.1、特征2.2.2、使用API函数2.2.3、应用实例参考管道(pipe)什么是进程间通信?每个进程各自有不同的用户地址空间,任何一个进程的全局变量在另一个进程中都看不到,所以进程之间要交换数据必须通过内核,在内核中开辟一块缓冲区,进程A把数据从用户空间拷到内核缓冲区,进程B原创 2020-07-30 22:31:19 · 18553 阅读 · 4 评论 -
操作系统常问面试问题 3 —— 死锁(deadlock)(产生的条件、死锁避免(银行家算法)、死锁检测)
死锁(产生的条件、死锁避免(银行家算法)、死锁检测)死锁(deadlock)1、定义2、产生的条件3、死锁避免3.1、银行家算法3.1.1、实现过程4、死锁检测5、死锁恢复6、鸵鸟算法死锁(deadlock)1、定义线程死锁是指由于两个或者多个线程互相持有对方所需要的资源,导致这些线程处于等待状态,无法前往执行。当线程进入对象的synchronized代码块时,便占有了资源,直到它退出该代码块或者调用wait方法,才释放资源,在此期间,其他线程将不能进入该代码块。当线程互相持有对方所需要的资源时,会原创 2020-07-29 23:33:52 · 1838 阅读 · 0 评论 -
操作系统常问面试问题 2 —— 虚拟内存以及操作系统的程序内存结构(堆和栈的区别)
虚拟内存以及操作系统的程序内存结构1、操作系统的程序内存结构1.1、程序编译运行过程1.2、程序的内存分布2、操作系统的虚拟内存2.1、背景2.2、定义2.3、特征(优势)参考1、操作系统的程序内存结构1.1、程序编译运行过程源代码(source coprede)→预处理器(processor)→编译器(compiler)→汇编程序(assembler)→目标程序(object code)→链接器(Linker)→可执行程序(executables)分配程序执行所需的栈空间、代码段、静态存储区、映原创 2020-07-29 22:29:20 · 890 阅读 · 0 评论 -
操作系统常问面试问题 1 —— 进程和线程相关(定义、结构、占用资源、开销、区别、通信方式等等)
进程和线程进程和线程1、什么是进程、什么是线程2、进程和线程的区别3、进程私有和共享的资源、线程私有和共享的资源5、进程间通信方式(宏观说明,API使用后续说明)5.1、管道5.2、消息队列5.3、信号量5.4、信号5.5、共享内存(Shared Memory)5.6、套接字6、线程间通信方式(宏观说明,API前面博客已说明)7、有了进程,为什么还要有线程8、多进程与多线程间的对比、优劣与选择9、进程间的状态有哪些10、僵尸进程、孤儿进程11、守护进程12、进程和PCB(进程控制块)进程和线程1、什么是原创 2020-07-29 00:10:45 · 677 阅读 · 0 评论