Linux环境编程
文章平均质量分 60
Ray5505
取之于“在线”,用之于“在线”
展开
-
Linux环境编程--收藏17
1. 线程池C语言实现简单线程池原创 2021-09-30 16:47:53 · 78 阅读 · 0 评论 -
Linux环境编程--随笔16
1.linux系统中有个符号链接:/proc/self/exe 它代表当前程序,所以可以用readlink读取它的源路径就可以获取当前程序的绝对路径。2. 内核cpu 只能一条指令一条指令的运行吗?内核运行也是进程吗?那么内核也不是一直运行的吗?内核态 用户态?linux 内核也不是一直运行的,是吗?用户程序不是 在内核运行的基础上运行的吗?用户程序运行的时候调用内核代码是吗?知乎“OS不是运行着的代码,而是一堆躺在内存里等着被调用的代码”知乎上看到过一句话:OS不是运行着的代..原创 2021-09-13 16:50:20 · 85 阅读 · 0 评论 -
Linux环境编程--收藏15_2
1. 终端、控制台、tty、终端模拟器终端、虚拟终端、shell、控制台、tty的区别终端 和 Shell 的关系原创 2021-09-18 10:52:24 · 83 阅读 · 0 评论 -
Linux环境编程--收藏15_1
1.查看linux libc版本_懒雄熊的专栏-CSDN博客_查看libc版本原创 2021-09-08 14:07:44 · 114 阅读 · 0 评论 -
Linux环境编程--14 原子操作
原子操作一、概念 (1)在多进程(线程)访问资源时,能够确保所有其他的进程(线程)都不在同一时间内访问相同的资源。原子操作(atomic operation)是不需要synchronized。所谓原子操作是指不会被线程调度机制打断的操作;这种操作一旦开始,就一直运行到结束,中间不会有任何 context switch (切换到另一个线程)。 (2)原子操作(atomic operation)指的是由多步操作组成的一个操作。如果该操作不能原子地执行,则要么执行完所有步骤,要么一步也不执...原创 2021-09-07 10:05:46 · 241 阅读 · 0 评论 -
Linux环境编程--13 内存管理
分页内存管理1. 思考点2. 离散式的内存管理方案分页、分段、段页式3. 分页1. 内存管理方案,允许进程的物理地址空间可能不连续,只要有可用的内存就可以分配给进程。2. 基本方法,将物理内存分成固定大小的内存块,称为帧,也可以简单的称为内存块。帧也称为页框。 讲逻辑内存也分成同样大小的内存块,称为页。 帧和页的大小由硬件决定的,通常为2的幂,根据计算机结构不同,大小不同...原创 2021-05-16 18:49:39 · 108 阅读 · 0 评论 -
Linux环境编程--12 内存管理
连续内存分配1. 思考点:2. 连续内存分配1. 为一个用户程序分配一个连续的内存空间。2. 是早期内存分配模式,应用于内存较少的系统。3. 三种分配类型: 单一连续分配:单道程序中,仅装有一道用户程序 固定分区分配: 可变分区分配:4. 主存通常分为两部分:驻留操作系统;保存用户进程。5. 操作系统可位于内存低端也可位于内存高端。影响这一决定的主要因素是中断向量的位置。中断向量通常保存在内存低端,因此操作系统通常驻留...原创 2021-05-16 12:41:45 · 100 阅读 · 0 评论 -
Linux环境编程--11 内存管理
1. 思考点1. cpu时钟周期概念:时钟频率是指1秒钟的标准单位时间里,0或1的电压脉冲变化了多少次,好比在一个大的水池里,投了一块石头,水面荡起了一圈圈的波浪,在一个标准的长度了(如100米),波浪变化了多少次,次数好比时钟频率,而时钟周期就是两个波浪之间的距离;两个波浪之间越近,在一个标准的长度波浪的频率越高,(越多)当然波与波的距离就越小,也就是时钟周期小,之间的关系是F=1/T,F是时钟频率,T是周期。2. 内存1. 现代计算机的运行的中心,它由字或字节组成,每个字或字...原创 2021-05-16 11:07:40 · 123 阅读 · 0 评论 -
Linux环境编程--10 死锁
1. 死锁概念在多道程序环境中,一组处于等待状态的的进程,其中每个进程都持有资源,并且等待着由这组其他进程所持有的资源,那么该组等待进程可能再也无法改变其状态,这种情况称为死锁。所有死锁的进程,如无外力的介入,都无法往前推进。2. 引起死锁的原因1. 竞争互斥资源。2. 或者进程进程推进不当。3. 死锁的必要条件1. 互斥:至少有一个资源处于非共享模式,即一次只有一个进程使用。2. 占用并等待:一个至少有持有一个资源的进程等待获得额外的其他进程所持有的资源。3.原创 2021-05-15 17:53:56 · 76 阅读 · 0 评论 -
Linux环境编程--09 进程同步
1. 注意点1. 为什么协程的运行次序会导致出错?在什么共享的资源上出现的错误?2. 操作系统如何实现原子操作的?2. 进程并发时协同进程面临的问题在进程并按时,各个协程运行次序的不同导致不同的运行结果,从而导致运行出错。(运行结果数据不一致性问题)3. 数据不一致问题1. 在现场操作系统中,每个进程可在任何时候被中断,仅仅进程的部分代码可以连续执行。2. 共享数据并发/并行访问:会出现数据不一致性问题。又称为不可再现性:同一个进程在同一数据上多次运行的结果不一样。原创 2021-05-12 00:27:46 · 283 阅读 · 0 评论 -
Linux环境编程--08 CPU调度
1. 思考点1. 多核处理器“同一时刻”能运行几个进程?多核处理器如何进行cpu调度的。2.2. CPU调度1. 目的是使CPU执行更多的指令,提高CPU效率。2. 因为进程间存在竞争,需要操作系统选择进程进行转换。3. 操作系统为了方便cpu调度,为进程的不同状态进行组织管理。为某些特定的状态设立一个或多个进程队列,用于管理内存。如就绪队列、设备队列。所有设备队列中进程都是等待状态。3. CPU调度方式1. 长程调度 道:允许在内存中运行的...原创 2021-05-11 23:25:08 · 581 阅读 · 0 评论 -
Linux环境编程--07 线程进程补充
1. 进程五状态的转换图2. 了解上下文切换,了解了解两个进程切换的过程,了解进程怎么使用PCB保存和恢复现场的?3. 了解系统调用、中断,系统调用和中断会发生进程切换吗?4. 父进程子进程共享全部还是部分资源?5. 僵尸进程有什么损害?6. 什么是孤儿进程?什么是守护进程?7. 一个进程可以创建多少线程。8. 再理解系统调用,系统调用与普通调用的区别?系统调用会产生中断吗?什么是中断?-------------------------------------------.原创 2021-05-11 18:52:55 · 70 阅读 · 0 评论 -
Linux环境编程--06 线程
1. 思考点1. 一个进程可以创建多少线程。2. 再理解系统调用,系统调用与普通调用的区别?系统调用会产生中断吗?什么是中断?2.引用线程的原因1. 进程操作开销大,(如进程创建时,上下文切换时)2. 进程内的代码有并行执行的需求;(多任务)3. 线程更好的利用多核处理器3. 线程理解1. cpu运行的基本单位2. 进程内的代码片段,可以创建一个线程3. 线程与进程一样有自己的状态:就绪、运行、等待等4. 线程操作:创建、撤销、等待、唤醒等5. 进.原创 2021-05-11 18:47:34 · 84 阅读 · 0 评论 -
Linux环境编程--05 进程
注意点:1. 进程五状态的转换图2. 了解上下文切换,了解了解两个进程切换的过程,了解进程怎么使用PCB保存和恢复现场的?3. 了解系统调用、中断,系统调用和中断会发生进程切换吗?4. 父进程子进程共享全部还是部分资源?1. 进程1. 进程是程序的一个实例2. 一个程序可以对应一个或多个进程;一个进程可以对应一个或多个程序。3. 程序是进程的代码部分。4. 进程是活动实体。5. 进程驻留在内存,程序在外存。2. 进程状态机(生命周期)就绪:等待处理器原创 2021-05-11 09:53:27 · 99 阅读 · 0 评论 -
Linux环境编程--04 标准IO
1. 要点1. FILE结构体,也称为流,是fopen打开的返回值。2. 缓冲,标准IO实现用户态增加缓冲区。3. 文本流、二进制流4. EOF 是什么意思。5. fgetc函数返回值为什么是int?2. 标准IO api (是依据对应的无缓冲io函数实现的,也就是POSIX IO)fopen(),fclose(),fgetc(),fputc(),fgets(),fputs(),fread(),fwrite()----------------------------------.原创 2021-05-10 18:40:38 · 62 阅读 · 0 评论 -
Linux环境编程--03 文件IO
access函数原型int access(const char *pathname, int mode); 函数参数mode: 需要测试的操作模式,可能值是一个或多个R_OK(可读?), W_OK(可写?), X_OK(可执行?) 或 F_OK(文件存在?)组合体。函数返回值成功执行时,返回0。失败返回-1,errno被设为以下的某个值EINVAL: 模式值无效 EACCES: 文件或路径名中包含的目录不可访问ELOOP : 解释路径名过程中存在太多的符号连接ENA..原创 2021-05-08 16:06:38 · 81 阅读 · 0 评论 -
Linux环境编程--02 文件IO
函数原型int open(const char*pathname,int flags);int open(const char*pathname,int flags,mode_t mode);返回值成功:新打开的文件描述符失败:-1open返回的文件描述符一定是最小的而且没有被使用的参数int open(const char*pathname,int flags);int open(const char*pathname,int flags,mode_t mode);.原创 2021-05-08 09:54:52 · 116 阅读 · 2 评论 -
Linux环境编程--01
1. 一些标准ISO CPOSIX glibcwin32 C标准库、POSIX库、glibc库 ANSI/ISO_C POSIX GLIBC WIN32 种种C标准的概念区分原创 2021-05-08 08:54:30 · 97 阅读 · 0 评论