
Linux环境编程
斯立扑
这个作者很懒,什么都没留下…
展开
-
环境编程10
一、基本概念竞争与同步:同一个进程中的线程能共享进程中的绝大多数资源,当它们随意竞争时可以导致资源会破坏、脏数据、不完整、不一致等问题。通过一些方法让进程在竞争资源时相互协调,避免出现数据不完全、不一致等问题,这就叫线程同步。临界区与临界资源:被多个线程同时访问的代码叫临界区,被同时访问的资源叫临界资源。原子操作:中间不会打断的操作叫原子操作。二、互斥量(互斥锁)pthread_mutex_t 是一种数据类型,可以定义变量。int pthread_mutex_init(pthread_mu原创 2020-09-14 11:30:55 · 127 阅读 · 0 评论 -
环境编程09
一、基本概念1、线程就是进程的进程路线,它是进程内部的控制序列,或者说它是进程的一部分(进程是一个资源单位,线程是的一部分负责真正的执行)。2、线程是轻量级的,没有自己独立的代码段、数据段、bss段、堆、环境变量、命令行参数、文件描述符、信号处理函数、当前目录等资源。3、线程有自己独立的栈内存、线程ID、错误码、信号掩码等。4、一个进程中可以包含多个线程(多个执行路线),但至少有一个,这个线程要主线程,//默认情况下主线程结束其它线程会跟着一起结束。5、ps -T -p 或者使用htop命令查看原创 2020-09-14 11:28:18 · 113 阅读 · 0 评论 -
环境编程08
一、套接字基本特点:socket是一种接口技术,被抽象成一个文件操作,可以让进程之间通信,也可以让不同计算机的进程通信(网络)。int socket(int domain, int type, int protocol);功能:创建套接字domain:AF_UNIX/AF_LOCAL 本地通信,进程间通信AF_INET 基于IPv4地址通信AF_INET6 基于IPv6地址通信type:SOCK_STREAM 数据流协议SOCK_DGRAM 数据报协议protocol:特殊通信协议,一原创 2020-09-14 11:24:55 · 116 阅读 · 0 评论 -
环境编程07
基本概念:什么是进程间通信:是指两个或多个进程之间交互数据的过程,因为进程之间是相互独立,为了协同工作必须交互数据。进程间通信的分类:简单的进程间通信:信号、文件、环境变量、命令行参数。传统的进程间通信:管道文件(有名管道、匿名管道)XSI进程间通信:共享内存、消息队列、信号量。网络进程间通信:套接字传统进程间通-管道管道是UNIX系统中最古老的进程间通信方式,古老就意味着所有系统都支持,早期的管道都是半双工,现在有些系统的管道是全双工(但要假定系统仅支持半双工)。管道是一种特殊的文件,它原创 2020-09-14 11:20:00 · 93 阅读 · 0 评论 -
环境编程06
进程基本概念:1、进程与程序程序就是存储在磁盘上的可执行文件,程序被加载到内存中开始运行叫进程。一个程序可以被多次加载生成多个进程,进程就是处于活动状态的计算机程序。2、进程的分类进程一般分为三种类型:交互进程、批处理进程、守护进程。守护进程一般都处于活跃状态,运行在后台,由于系统在开机时通过启动脚本自动创建的。3、查看进程简单形式:ps 显示当前用户有控制终端的进程信息。列表形式:ps auxw 显示进程详细信息a 所有用户的有控制终端的进程x 无终端控制的进程u 显示进程的详细信息原创 2020-09-14 11:17:26 · 120 阅读 · 0 评论 -
环境编程05
基本概念1、中断当程序接收消息后中止当前正在执行的程序,转而执行其它任务,等其它任务执行完成后再返回,这种执行模式叫中断,分为硬件中断和软件中断。2、信号是一种软件中断,由操作系统发出,程序接收后会执行相应的操作。3、常见信号kill -l 显示所有信号SIGINT Ctrl+c 终止SIGQUIT Ctrl+\ 终止+coreSIGFPE 除0 终止+coreSIGSEGV 非常内存访问 终止+coreSIGKILL 终止信号 终止4原创 2020-09-14 11:13:45 · 86 阅读 · 0 评论 -
环境编程04
文件同步:1、在写入数据时内存与磁盘之间也有一个缓冲区,这种机制降低了磁盘读写次数,提高了读写的效率。2、但这种机制带来的后果就是磁盘中的数据与实写入的数据不匹配,系统提供了一个函数可以让缓冲区中的数据立即写入到磁盘。void sync(void);功能:把缓冲区中的数据同步到磁盘注意:并不等到数据同步完成后才返回,而是把缓冲区的数据加入到写入队列。int fsync(int fd);功能:把指定文件的内容从缓冲区同步到磁盘注意:会等到完全定稿磁盘才返回int fdatasync(int原创 2020-08-24 20:23:30 · 97 阅读 · 0 评论 -
环境编程03
系统调用:系统调用就是操作系统提供的一些功能供程序员们调用,这些调用已经被封装成了C函数的形式,但是它们不是标准C的一部分。一般应用程序运行在用户态(使用的是03G的内存),系统调用工作在内存态(使用的是34G的内存)。常用的标准库函数大部分时间运行在用户态,底层偶尔也会调用系统调用进入内核态。系统调用的代码是内核的一部分,其外部接口以函数定义共享库中(linux-gate.so,ld-linux.so),这些接口的实现利用软中断进入内核态执行真正的系统调用。time a.out 测试程序的运行时原创 2020-08-24 20:21:02 · 156 阅读 · 0 评论 -
环境编程02
一、内存管理用户层STL 自动分配/释放内存 调用C++C++ new/delete 调用CC malloc/free 调用POSIXPOSIX brk/sbrk 调用LinuxLinux mmap/munmap 调用内核系统层kernal kmalloc/vmalloc 调用驱动driver get_free_page二、进程映像程序是存储在磁盘上的可执行文件,当执行程序时,系统会将可执行文件加载到同原创 2020-08-24 20:17:52 · 146 阅读 · 0 评论 -
环境编程01
程序员必备技能:一门编程语言:C语言、C++数据结构和算法:表 树 图 查找 排序 STL操作系统:Linux系统网络通信:TCP/IP (Socket、TCP、UDP、FTP、HTTP)数据库:MySQL界面设计:Qt课程内容介绍:内存管理文件管理信号处理进程管理进程通信线程管理线程同步网络通信UNIX系统介绍:最早版于1970年问世于贝尔实验室,作者是丹尼斯.里奇和肯.汤普逊。是最早的多用户、多任务、支持多种CPU架构,高安全性、高稳定性、高可靠性。既能构架大型关键原创 2020-08-24 20:17:10 · 140 阅读 · 0 评论