您的位置:首页 > 科技 > 能源 > 朝阳网络公司怎么样_长沙建网站的公司多少钱_搭建一个网站平台需要多少钱_软文拟发布的平台与板块

朝阳网络公司怎么样_长沙建网站的公司多少钱_搭建一个网站平台需要多少钱_软文拟发布的平台与板块

2025/4/5 6:46:19 来源:https://blog.csdn.net/LYcxxx_9/article/details/146997313  浏览:    关键词:朝阳网络公司怎么样_长沙建网站的公司多少钱_搭建一个网站平台需要多少钱_软文拟发布的平台与板块
朝阳网络公司怎么样_长沙建网站的公司多少钱_搭建一个网站平台需要多少钱_软文拟发布的平台与板块

Linux系统调用编程

  • 一.进程和线程的概念
    • 1.1 进程
    • 1.2 线程
  • 二.用 ps -a 命令查看系统中各进程的编号pid
    • 2.1 打开XTerminal
    • 2.2 登录阿里云服务器Ubuntu系统的账号
    • 2.3 用 ps -a 命令查看系统中各进程的编号pid
    • 2.4 用kill 命令终止一个进程pid
  • 三.在home目录下,创建一个作业子目录,然后学习使用vi 编辑一个c代码,gcc编译,实现一个系统调用函数的例子
    • 3.1 创建子目录
    • 3.2 用vi 编辑一个c代码
    • 3.3 使用gcc编译 C 代码
    • 3.4 运行编译后的程序

一.进程和线程的概念

1.1 进程

进程是程序在操作系统中的一次执行过程,是系统进行资源分配和调度的基本单位。可以将进程理解为一个正在运行的程序实例。比如,当你打开浏览器时,操作系统就会创建一个浏览器进程。进程具有以下特点:
动态性:进程是程序的执行过程,它有着自己的生命周期,包括创建、运行、暂停、终止等状态。例如,启动一个游戏时创建进程,关闭游戏时进程终止。
独立性:每个进程都有自己独立的内存空间、系统资源(如文件描述符)和执行上下文。这意味着一个进程的崩溃通常不会影响其他进程。例如,你在电脑上同时打开浏览器、音乐播放器和文本编辑器,它们各自作为独立的进程运行,一个进程出现问题不会导致其他进程关闭。
资源分配:操作系统会为每个进程分配必要的资源,如内存、CPU 时间片等。进程之间的资源是相互隔离的,通过进程间通信(IPC)机制,如管道、消息队列、共享内存等,实现进程之间的信息交换和同步。

1.2 线程

线程是进程中的一个执行单元,是 CPU 调度和分派的基本单位。一个进程可以包含多个线程,这些线程共享进程的资源,如内存空间、文件描述符等。例如,浏览器进程中可能包含渲染线程、网络请求线程、脚本执行线程等。线程具有以下特点:
轻量级:线程的创建和销毁开销相对较小,因为它们共享进程的资源,不需要像进程那样分配大量的系统资源。
共享资源:同一进程内的多个线程共享进程的内存空间和系统资源,这使得线程之间的通信和数据共享更加方便。但同时也带来了同步和互斥的问题,需要使用锁、信号量等机制来保证线程安全。
并发执行:多个线程可以在同一个进程内并发执行,提高了程序的执行效率。例如,在一个多媒体播放器进程中,一个线程负责播放音频,另一个线程负责播放视频,这样可以实现音频和视频的同步播放。
进程和线程的关系
一个进程可以包含多个线程,这些线程在进程的地址空间内并发执行。
进程是资源分配的基本单位,而线程是 CPU 调度的基本单位。
线程的创建和销毁比进程更加高效,因为线程不需要重新分配系统资源。
进程之间的通信相对复杂,而线程之间的通信由于共享进程的资源而更加简单

二.用 ps -a 命令查看系统中各进程的编号pid

2.1 打开XTerminal

在这里插入图片描述

2.2 登录阿里云服务器Ubuntu系统的账号

在这里插入图片描述

2.3 用 ps -a 命令查看系统中各进程的编号pid

此命令会显示当前系统中所有终端下运行的进程信息。输出结果里会有PID列,这一列对应的数值就是每个进程的编号。
在这里插入图片描述

2.4 用kill 命令终止一个进程pid

当你确定要终止的进程编号后,在 XTerminal 输入kill <PID>,把<PID>替换成你要终止的进程的实际编号。

三.在home目录下,创建一个作业子目录,然后学习使用vi 编辑一个c代码,gcc编译,实现一个系统调用函数的例子

3.1 创建子目录

先使用pwd命令查看当前所在的目录。
在这里插入图片描述
使用mkdir命令来创建作业子目录。创建一个名为assignments的作业子目录。使用ls命令查看home目录下的文件和文件夹,以此确认作业子目录是否创建成功。
在这里插入图片描述

3.2 用vi 编辑一个c代码

输入vi syscall_example.c开启vi编辑器来创建一个新的 C 文件
进入vi编辑器后,按i键进入插入模式,接着输入下面的 C 代码:

#include <stdio.h>
#include <unistd.h>
#include <string.h>int main() {// 使用系统调用函数write向标准输出写入数据const char *message = "Hello, this is a system call example!\n";ssize_t bytes_written = write(STDOUT_FILENO, message, strlen(message));if (bytes_written == -1) {perror("write");return 1;}return 0;
}

输入:wq并回车,保存文件并退出vi编辑器

3.3 使用gcc编译 C 代码

输入以下命令,使用gcc编译刚才创建的 C 文件:

gcc -o syscall_example syscall_example.c

这个命令会把syscall_example.c文件编译成可执行文件syscall_example

3.4 运行编译后的程序

输入以下命令来运行编译好的可执行文件:

./syscall_example

在这里插入图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com