随笔分类 -  linux

线程安全
摘要:线程安全 可重入/不可重入:针对函数,多个执行流中是否可以同时进入函数运行而不出现问题 概念:指多个线程同时处理操作临界资源而不会出现数据二义性,则称是线程安全的 二义性:在线程中是否对临界资源进行了非原子操作 如何实现线程安全: 同步(保证合理):临界资源的合理访问(时序可控) 互斥(保证安全): 阅读全文

posted @ 2019-09-02 01:05 The_Ocean 阅读(175) 评论(0) 推荐(0)

线程概念及多线程控制
摘要:多线程: 多进程:可以同时处理数据(并发/并行) 多线程:可以同时处理数据(并发/并行) 线程概念: 多进程任务处理(使用的是多个虚拟地址空间):将多个任务分解为多个程序(分解到多个进程中完成)。 多线程任务处理:多个pcb 共用同一个虚拟地址空间,同时完成一个代码段中多个不同模块的功能。 进程的理 阅读全文

posted @ 2019-08-25 23:26 The_Ocean 阅读(923) 评论(0) 推荐(0)

进程信号
摘要:进程信号: 信号概念:信号就是一个软件中断,通知进程发生了某件事情(打断当前阻塞操作,选择一个合适的时机去处理信号) 功能:通知事件的发生 能够识别信号 信号有不同种类: 查看种类:(共有62种) 命令:kill -l 1号—31号(非实时信号):linux继承unix的信号(非可靠信号,表示信号可 阅读全文

posted @ 2019-08-25 23:23 The_Ocean 阅读(392) 评论(0) 推荐(0)

高级IO
摘要:高级IO: 五种IO模型:阻塞IO; 非阻塞IO; 信号驱动IO;异步IO;多路转接IO IO操作分为两个过程:等待/数据拷贝 阻塞IO: 发起IO调用后,若不具备IO条件,则等待IO条件具备,拷贝数据后返回 非阻塞IO: 发起IO调用后,若不具备IO条件,则立即报错返回,若具备IO条件则立即拷贝数 阅读全文

posted @ 2019-08-22 22:15 The_Ocean 阅读(312) 评论(0) 推荐(0)

进程间通信
摘要:进程间通信 基本介绍: 操作系统提供给用户的几种进程间的通信方式 进程间通信方式是干什么的: 进程间数据传输 数据共享 进程控制 事件通知 正式因为有不同的需求,因此操作系统之间有人提供了多找不同的进程间的通信方式: 续继承与unix而来的管道(匿名管道/命名管道) 共享内存 消息队列 信号量 为什 阅读全文

posted @ 2019-08-16 23:17 The_Ocean 阅读(157) 评论(0) 推荐(0)

网络
摘要:网络: 基础概念: 局域网/城域网/广域网/互联网/因特网 ip地址:在网络中唯一表示一台主机 port端口:在一台主机上表示进程 协议:通信双方的约定 网络协议:网络通信唤醒中数据的约定格式 通信协议:网络互联的前提 协议分层:就是一种协议封装,便于使用 对服务,接口,协议进行明确划分;形成标准实 阅读全文

posted @ 2019-08-15 23:10 The_Ocean 阅读(261) 评论(0) 推荐(0)

基础I/O
摘要:基础IO: c库文件IO操作接口:(详细查看c语言中的文件操作函数总结:https://www.cnblogs.com/cuckoo-/p/10560640.html) fopen 打开文件 fclose 关闭文件 fread 读取文件 fwrite 写入文件 fseek 移动跳转当前读取/写入位置 阅读全文

posted @ 2019-06-24 21:50 The_Ocean 阅读(160) 评论(0) 推荐(0)

进程程序替换(自主实现shell)
摘要:进程替换 替换进程所运行的程序 流程:将另一段代码加载到内存中,通过页表将原来进程的映射关系重新建立到新的程序在内存中的地址,相当于替换了进程所运行程序以及所要处理的数据 (替换了代码段,重新初始化数据段) 目的:让程序执行其他任务 如何替换:exec函数家族 execl execlp execle 阅读全文

posted @ 2019-06-17 13:35 The_Ocean 阅读(411) 评论(0) 推荐(0)

进程控制
摘要:进程创建: fork函数: 作用:从已经存在进程中创建一个新进程,新进程为子进程,而原进程为父进程。 执行: 分配新的内存块和内核数据结构给子进程 将父进程部分数据结构内容拷贝至子进程中 添加子进程到系统进程列表中 fork返回,开始调度器调度 分配新的内存块和内核数据结构给子进程 将父进程部分数据 阅读全文

posted @ 2019-06-17 09:34 The_Ocean 阅读(224) 评论(0) 推荐(0)

调研task_struct结构体
摘要:进程的描述PCB task_struct——PCB的一种,在linux中描述进程的结构体叫做task_struct. task_struct内容分类: 标识符:描述本进程的唯一标识符,用来区别其他进程 状态:任务状态,推出代码,退出信号等 优先级:相对于其他进程的优先级 程序计数器:程序中即将被执行 阅读全文

posted @ 2019-06-05 12:41 The_Ocean 阅读(5007) 评论(0) 推荐(1)

linux——环境变量
摘要:环境变量 基本概念: 一般是指在操作系统中用来指定操纵系统运行环境的一些参数 当我们用动态库链接成功的时候,其实就是相关的环境变量帮助编译器进行查找。 环境变量通常具有某种特殊用途,还有在系统当中通常具有全局性 常见环境变量: PATH:指定命令的搜索路径 HOME:指定用户的主工作目录(即用户登录 阅读全文

posted @ 2019-06-04 17:29 The_Ocean 阅读(179) 评论(0) 推荐(0)

进程的了解与僵尸进程的实现
摘要:进程概念:程序的一个执行实例,正在执行的程序等 内核观念:担当分配系统资源(CPU时间,内训存)的实体 查看进程: 进程存放在根目录下的proc文件中,可以通过/proc系统文件查看: 使用ps aux | grep test 通过系统调用创建进程—fork(在创建子进程的时候其实是复制了task_ 阅读全文

posted @ 2019-06-03 10:46 The_Ocean 阅读(755) 评论(0) 推荐(0)

进程的调度算法
摘要:调度算法的实质是:根据系统的资源分配策略所规定的资源分配算法。 先介绍一下进程调度与作业调度的区别:进程调度是真正让某个就绪状态的进程到处理机上运行,而作业调度只是使作业具有了竞争处理机的机会。 进程调度(又称微观调度、低级调度、短程调度):是按照某种调度算法从就绪状态的进程中选择一个进程到处理机上 阅读全文

posted @ 2019-04-27 17:18 The_Ocean 阅读(634) 评论(0) 推荐(0)

linux下软件安装的几种方式
摘要:linux下软件安装的几种方式(主要有源码安装, rpm安装, yum安装). 一:源码安装 几乎所有的开源软件都支持在Linux下运行,而这些软件一般都以源码形式发放,只需要Linux安装了gcc、make、automake、autoconf都支持源码安装,这种包都是tar.gz或bz.2包,源码 阅读全文

posted @ 2019-04-26 10:43 The_Ocean 阅读(1159) 评论(0) 推荐(1)

详解在Linux下实现(彩色)进度条程序,并通过makefile进行编译.
摘要:彩色进度条的实现与makefile编译: 创建一个process文件,在里面编写实现进度条的代码 1.在编写代码的时候我们首先要区分两个转义字符:\n \r \n:表示换行,换到下一行,并位于起始位置,并不会覆盖原来的内容。 \r:表示回车,回到这一行的起始位置,相当于覆盖了之前的内容,不会重启一行 阅读全文

posted @ 2019-04-25 22:49 The_Ocean 阅读(768) 评论(0) 推荐(0)

linux下目录简介——/SElinux
摘要:一、前言 安全增强型 Linux(Security-Enhanced Linux)简称 SELinux,它是一个 Linux 内核模块,也是 Linux 的一个安全子系统。 SELinux 主要由美国国家安全局开发。2.6 及以上版本的 Linux 内核都已经集成了 SELinux 模块。 SELi 阅读全文

posted @ 2019-04-20 19:58 The_Ocean 阅读(899) 评论(0) 推荐(0)

linux下目录简介——/proc
摘要:1. /proc目录Linux 内核提供了一种通过 /proc 文件系统,在运行时访问内核内部数据结构、改变内核设置的机制。proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间。它以文件系统的方式为访问系统内核数据的操作提供接口。 用户和应用程序可以通过proc得到系统的信息,并可以 阅读全文

posted @ 2019-04-20 19:51 The_Ocean 阅读(571) 评论(0) 推荐(0)

linux下目录简介——/sys
摘要:Linux下/sys目录介绍 1. 概述 ramdisk 文件系统基于磁盘模拟技术,实际文件系统是ex2 ex3等。sysfs是一种基于ram文件系统和proc一样。Sysfs文件系统是一个类似于proc文件系统的特殊文件系统,用于将系统中的设备组织成层次结构,并向用户模式程序提供详细的内核数据结构 阅读全文

posted @ 2019-04-20 19:45 The_Ocean 阅读(8215) 评论(0) 推荐(0)

gcc的调试调研——gdb
摘要:首先来介绍一下gcc的选项: 其他选项都为常用编译选项,在这里介绍一下优化功能: 优化编译时使用选项: -O:可以告诉gcc同时减小代码的长度和执行时间,其效果等价于-O1,在这一级别上能够进行的优化类型虽然取决于目标处理器,但一般都会包括线程跳转和延迟退栈两种优化。 -O2:可以告诉gcc除了完成 阅读全文

posted @ 2019-04-20 15:30 The_Ocean 阅读(407) 评论(0) 推荐(0)

了解一些常用的牛逼编译器(不限制编程语言, 不限制平台)
摘要:MSVC Windows平台上最常用的编译器,在C++编译器圣战中的胜利者,一个常被人诟病的是对标准的支持不够新不够快(最近开始逐步加快了)。随着微软发布基于Clang / C2,这一条路以后若成功,MSVC与Clang / C2并行,甚至逐步逐步退出舞台,都是有可能的事情。 MSVC Clang 阅读全文

posted @ 2019-04-19 09:31 The_Ocean 阅读(1200) 评论(0) 推荐(0)

导航