随笔分类 - Linux操作系统基础知识
记录学习过程中的概念性问题,内容均来自正点原子Linux开发教程。
摘要:一、为什么需要线程同步? 1.对共享资源进行保护。这里的共享资源是指多个线程都会进行访问的资源。 2.解决数据一致性问题。当一个线程可以修改的变量,其它的线程也可以读取或者修改的时候,这个时候就存在数据一致性的问题,需要对这些线程进行同步操作,确保它们在访问变量的存储内容时不会访问到无效的值。本质在
阅读全文
摘要:线程的基本操作包括: 创建线程 终止线程 回收线程 取消线程 分离线程 注册线程清理处理函数
阅读全文
摘要:一、线程的概念 1.什么是线程? 线程是参与系统调度的最小单位。它被包含在进程中,是进程中的实际运行单位。一个线程指的是进程中一个单一顺序的控制流(或者说是执行路线、执行流),一个进程中可以创建多个线程,多个线程实现并发运行,每个线程执行不同的任务。 2.线程是如何被创建的? 当一个程序启动时,就有
阅读全文
摘要:一、进程间通信(interprocess communication,简称 IPC)指两个进程之间的通信。 系统中每个进程都有自己的地址空间,并且相互独立、隔离,每个进程都处于自己的地址空间中。 二、通信机制 Linux 内核提供了多种 IPC 机制,基本是从 UNIX 系统继承而来,而对 UNIX
阅读全文
摘要:一、进程的六种状态 Linux 系统下进程通常存在 6 种不同的状态,分为:就绪态、运行态、僵尸态、可中断睡眠状态(浅度睡眠)、不可中断睡眠状态(深度睡眠)以及暂停态。 就绪态:进程满足被CPU调度的所有条件但此时并没有被调度执行,只要得到CPU的使用权就能够被执行的状态。 运行态:进程正在被CPU
阅读全文
摘要:一、子进程 1.fork()创建子进程 一个现有的进程可以调用 fork()函数创建一个新的进程,调用 fork()函数的进程称为父进程,由 fork()函 数创建出来的进程被称为子进程(child process)。(使用该函数需要包含头文件<unistd.h>) 2.创建的子进程为新的独立的进程
阅读全文
摘要:一、程序是怎么被执行的 1.在程序中,由引导代码去调用程序中得main函数,而这个过程由链接器完成,链接器将引导代码链接到我们的应用程序构成可执行文件。 2.程序运行需要通过操作系统的加载器来实现,加载器是操作系统中的程序,当执行程序时,加载器负责将此应用程序加载内存中去执行。 3.如何向main函
阅读全文
摘要:光脚赤膊 于 2010-03-28 14:36:08发表: “用处是大面积赋值,速度快!” 所谓“初始化”,当然是指将你定义的变量或申请的空间赋予你所期望的值,例如语句int i=0;就表明定义了一个变量i,并初始化为0;如果int j=5;就表明定义了一个变量j,并初始化为5。 但是对于大块儿内存
阅读全文
摘要:1.登陆 Linux 系统时,虽然输入的是自己的用户名和密码,但其实 Linux 并不认识你的用户名称,它只认识用户名对应的 ID 号(也就是一串数字)。Linux 系统将所有用户的名称与 ID 的对应关系都存储在 /etc/passwd 文件中,用户的名称与 ID 的对应关系都存储在 /etc/g
阅读全文