- 博客(11)
- 收藏
- 关注
原创 linux 5中io模型
1.5种io模型阻塞IO(bloking IO)非阻塞IO(non-blocking IO)多路复用IO(multiplexing IO)信号驱动式IO(signal-driven IO)异步IO(asynchronous IO)一个输入操作通常包括两个阶段:1.等待数据准备好2.从内核向进程复制数据缓存IO(又被称为标准io):IO的数据缓存在文件系统的页缓存(page cache)中(先拷贝到...
2018-06-25 13:29:03 911 1
原创 内存管理
1.虚拟内存物理内存就是系统硬件提供的内存大小,是真正的内存。虚拟内存就是为了满足物理内存的不足而提出的策略,,它是利用磁盘空间虚拟出的一块逻辑内存,用作虚拟内存的磁盘空间被称为交换空间(Swap Space)。在程序装入时,可以将程序的一部分装入内存,而将其余部分留在外存(或者说写到交换空间中),就可以启动程序执行。在程序执行过程中,当所访问的信息不在内存时,由操作系统将所需要的部分调入内存,然...
2018-06-21 17:31:14 408
原创 进程调度
Linux进程分为两种,实时进程和非实时进程(交互式进程、批处理进程);优先级分为静态优先级和动态优先级,优先级的范围;调度策略交互进程通过平均睡眠时间而被奖励;https://blog.csdn.net/gatieme/article/details/51702662进程调度器的任务就是合理分配CPU时间给运行的进程,创造一种所有进程并行运行的错觉。这就对调度器提出了要求:1、调度器分配的CPU...
2018-06-07 11:54:04 403
转载 死锁
如果一个进程集合里面的每个进程都在等待这个集合中的其他一个进程(包括自身)才能继续往下执行,若无外力他们将无法推进,这种情况就是死锁,处于死锁状态的进程称为死锁进程死锁产生原因:竞争不可剥夺资源(系统将资源分配给某进程以后,不能强制收回,等到进程使用完成后自动释放);进程推进顺序不当Ps:内存是可竞争资源(某进程获得资源时可被其他进程或系统剥夺)1.死锁产生条件(1)互斥条件:进程对所分配到的资源...
2018-06-02 20:14:24 149
原创 进程间通信(IPC,InterProcess Communication)
1.管道(通常指无名管道)通过内核缓冲区实现数据传输管道是半双工的,数据单相流动;若需双方通信,需建立两个管道管道对管道两端进程而言,是一种单独的文件系统的文件,并且只存在在内存中管道内部保证同步机制,保证访问数据的一致性;面向字节流;进程在管道在,进程消失对应的端口也关闭无名管道/匿名管道(pipe),父子进程或者兄弟进程(具有亲缘关系的进程),因为其利用fork(),然后分别删除父进程的fd[...
2018-06-02 18:01:00 1191
原创 线程通信
线程之间通信的两个基本问题是互斥和同步同步:一个线程执行依赖另一个线程,直到等到消息到达这个线程才被唤醒互斥:对于共享的操作系统资源,任何时刻最多只允许一个线程去使用从大的方面讲,线程的同步可分用户模式的线程同步和内核对象的线程同步两大类。用户模式中线程的同步方法主要有原子访问(对原子操作--写操作而言,使用volatile变量,写变量与之后的变量读建立联系,发生happens-before,意味...
2018-05-29 17:22:14 273
原创 Linux中进程和线程使用的几个函数
1.linux进程相关函数(1)获取当前进程号 pid_t getpid(void) 头文件:sys/types.h、unistd.h 该函数成功返回当前ID,该函数always successful(2)获取父进程号 pid_t getppid(void) 头文件:sys/types.h、unistd.h alw...
2018-05-24 22:59:30 2080
原创 进程与线程
1.进程与线程区别(1)进程是具有一定独立功能的程序关于某个数据聚合上的一次运行活动,是系统进行资源分配和调度的一个独立单位; 线程是CPU调度和分派的基本单位,基本上不拥有系统资源(除程序计数器、一组寄存器和栈) 每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口;线程不能独立执行,必须存在应用程序中,一个应用程序有多个线程,并没有将多个线程看做多个独立的应...
2018-05-24 15:04:54 110
转载 转载知乎 C++后台开发面试一般考察什么
https://www.zhihu.com/question/34574154?sort=created作者:Oscarwin链接:https://www.zhihu.com/question/34574154/answer/253165162来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。C和C++语言基础参考书籍:《C++ primer》,《effective C...
2018-05-24 09:51:28 4084 3
原创 C++后台开发知识点概要
1.C++基本知识指针、多态(虚函数表、内存layout等)、作用域、内存的管理2.数据结构与算法哈希表、优先队列字符串处理、简单的DFS、BFS、动态规划3.linux操作(1)Linux命令和工具的使用、shell脚本的编写(2)Linux环境编程,api(POSIX函数,ANSI标准库函数) IO、各类IPC的操作方式、socket通信流程、select/poll/epoll等...
2018-05-24 09:48:16 257
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人