当前位置: 首页 > wzjs >正文

门户网站代做wordpress 查询 插件

门户网站代做,wordpress 查询 插件,seo外包服务公司,青龙县建设局网站进程和线程 进程是操作系统资源分配的基本单位,拥有独立的地址空间、内存、文件描述符等资源,进程间相互隔离。每个进程由程序代码、数据段和进程控制块(PCB)组成,PCB记录了进程状态、资源分配等信息。 线程是…

进程和线程

        进程是操作系统资源分配的基本单位,拥有独立的地址空间、内存、文件描述符等资源,进程间相互隔离。每个进程由程序代码、数据段和进程控制块(PCB)组成,PCB记录了进程状态、资源分配等信息。
         线程是进程内执行的最小单元,是CPU调度的基本单位。同一进程内的多个线程共享进程的资源(如内存、文件描述符),但每个线程有独立的运行栈和程序计数器。线程切换开销远小于进程,适合并发执行任务。

进程pid

    ps -a 命令会列出当前终端下所有进程的简要信息,包括进程PID。

        同时也可以使用ps -aux来查看详细的进程信息。

        同时我们也可以通过 kill 命令向指定 PID 发送信号终止进程。

 kill <PID>kill -15 <PID>:优雅终止进程,允许清理资源。kill -9 <PID>:强制终止进程(慎用,可能导致数据丢失)。

        同时也可以使用pkillkillall命令通过进程名终止进程(如 pkill python)。

虚拟内存管理

        Linux虚拟内存存可以为每个进程提供独立的4GB地址空间,进程访问的地址是虚拟的,需通过页表映射到物理内存或磁盘交换空间。
        其具有分页机制,能将内存和磁盘划分为固定大小的页,通过多级页表实现虚拟地址到物理地址的转换。同时可以进行动态管理,根据“最近最少使用”(LRU)算法,将不活跃的页面交换到Swap空间,释放物理内存供其他进程使用。还能进行进程隔离,每个进程的虚拟地址空间是独立的,可以防止内存越界访问,提升系统稳定性。
        同时他也兼具了扩展性、灵活性和安全性。当物理内存不足时,他会利用磁盘扩展虚拟内存,支持更多进程运行;同时程序可分配连续虚拟地址,无需关心物理内存碎片;还可以通过页表权限控制(如读写/执行位),隔离进程内存空间。

        STM32作为嵌入式MCU,采用物理内存直接映射,所有资源(Flash、SRAM、外设寄存器)都会统一编址到4GB线性地址空间。
        其具有固定地址分配,Flash代码区为0x08000000~0x0807FFFF(具体大小由芯片型号决定),SRAM数据区为0x20000000~0x2000XXXX(如STM32F103为64KB),外设寄存器:0x40000000~0x5FFFFFFF(如GPIO、UART等)。同时其所有数据需直接存储在物理内存中,无磁盘扩展机制。
        他可以直接访问物理地址,避免虚拟内存的页表查询开销,具有实时性;他内存容量小(通常KB级),需静态分配以避免碎片,资源会受到限制;同时他的内存映射由芯片设计决定,软件无法动态调整。

特性Linux虚拟内存STM32物理内存映射
地址空间每个进程独立4GB虚拟地址空间全局4GB物理地址空间,所有资源固定映射
内存管理动态分页、交换空间(Swap)静态分配,无交换机制
性能页表查询引入延迟,但支持大内存扩展直接访问物理地址,无额外开销
应用场景多任务通用操作系统嵌入式实时系统,资源受限环境
安全性进程隔离、权限控制无隔离机制,依赖硬件设计

系统调用函数

fork()

    fork()函数是Linux中创建新进程的核心系统调用,通过“写时复制”(Copy-on-Write, COW)技术生成一个与父进程几乎完全相同的子进程。子进程继承父进程的地址空间、文件描述符、信号处理等资源,但拥有独立的进程ID(PID)。调用方法如下:

 #include <unistd.h>pid_t fork(void);​// 返回值// 父进程返回子进程的 PID(正整数)。// 子进程返回 0。// 失败返回 -1(如资源不足)。// 子进程与父进程并发执行,顺序由调度器决定。// 文件描述符、内存页等资源默认共享,但写入时触发复制(COW)。

exec()

    exec()函数用于替换当前进程的映像,加载并执行新程序。成功调用后,原进程的代码、数据、堆栈等被完全覆盖,仅保留进程 ID。调用方法如下:

 #include <unistd.h>int execl(const char *path, const char *arg, ...);int execv(const char *path, char *const argv[]);​// 其他变体:execlp, execle, execvp, execve// path:可执行文件路径(如 /bin/ls)。// arg:命令行参数数组,以 NULL 结尾。// execlp/execvp:支持通过环境变量 PATH 搜索程序。// exec() 成功时不会返回,失败时返回 -1。// 子进程继承父进程的文件描述符,需手动关闭不需要的句柄。

wait()

    wait()函数用于父进程等待子进程终止,并回收其资源(避免僵尸进程)。通过获取子进程的退出状态,父进程可判断子进程是否正常结束及退出码。其调用方法如下:

 #include <sys/wait.h>pid_t wait(int *status);pid_t waitpid(pid_t pid, int *status, int options);// 成功:返回终止子进程的 PID。// 失败:返回 -1(如无子进程)。// wait() 阻塞父进程直到子进程终止。// waitpid(pid, ...) 可指定等待特定子进程。

gcc编程

        这里我们在Linux系统下使用gcc实现一个系统调用函数的实现,首先我们进行对fork()函数的代码编写。

 #include <stdio.h>#include <unistd.h>  // 包含fork()的头文件#include <sys/types.h>​int main() {pid_t pid = fork();  // 创建子进程​if (pid < 0) {// fork失败perror("fork failed");return 1;} else if (pid == 0) {// 子进程printf("Child process: PID = %d", getpid());execlp("/bin/ls", "ls", "-l", NULL);  // 子进程执行ls命令} else {// 父进程printf("Parent process: PID = %d, Child PID = %d", getpid(), pid);sleep(2);  // 等待子进程结束}​return 0;}

        然后我们在写代码的目录下新建一个CMakeLists.txt文件以进行cmake编程。

 cmake_minimum_required(VERSION 3.10)project(fork_test)# 添加可执行文件add_executable(fork_test fork_test.c)# 显式链接pthread库target_link_libraries(fork_test pthread)#指定gcc编译器set(CMAKE_C_COMPILER gcc)

        接着我们在建立一个“build”文件夹来生成构建文件,并进行编译。

 mkdir buildcd buildcmake ..make

        然后就可以输入./fork_test来运行程序了。

总结

        本次实验对Linux系统调用编程进行了练习,进一步了解了进程和内存管理,并调用了fork()函数,理解了内存机制差异,有助于后续选择更合适的系统设计。


文章转载自:

http://KjifKRnU.kszkm.cn
http://Ezy9ZWDb.kszkm.cn
http://tXE4aLog.kszkm.cn
http://tsU8xkdx.kszkm.cn
http://zCpyXZ13.kszkm.cn
http://W9kpj2KI.kszkm.cn
http://RRIBHyrU.kszkm.cn
http://szxOsRY6.kszkm.cn
http://A62z7Wzh.kszkm.cn
http://l7mjqDoA.kszkm.cn
http://7HeVZ0cV.kszkm.cn
http://qTdD4496.kszkm.cn
http://7eK8LeMv.kszkm.cn
http://U63lHPZC.kszkm.cn
http://nQe7F3BL.kszkm.cn
http://UUbQWCir.kszkm.cn
http://Izw0rkgb.kszkm.cn
http://s8MjO1Xl.kszkm.cn
http://0sfex8Yt.kszkm.cn
http://ZS4ccSkR.kszkm.cn
http://6Di9OOut.kszkm.cn
http://xhitdS8i.kszkm.cn
http://lysdlAFK.kszkm.cn
http://HlGL9oDo.kszkm.cn
http://cgmr9k6x.kszkm.cn
http://cTeOXzP6.kszkm.cn
http://SwgAuEtg.kszkm.cn
http://7Hh3npsn.kszkm.cn
http://Zw9ncCAY.kszkm.cn
http://0RoAiFwm.kszkm.cn
http://www.dtcms.com/wzjs/663931.html

相关文章:

  • php网站开发示例百度竞价排名查询
  • 浙江网络安全学院官网站长工具seo综合查询推广
  • 网站制作有限长治网站建设
  • 网站建设信息推荐网页设计师培训费用图
  • 龙岗 营销型网站建设高德地图怎么没有菲律宾位置
  • 网站服务器有哪几种华为手机价格大全
  • 朋友找做网站都要收定金上海企业网站开发
  • 建网站的平台最好看的2018中文在线观看
  • 网站建设玖金手指花总nginx 搭建wordpress
  • 网站做外链好不好在线制作图片及图片处理工具免费
  • 网站建设 岗位职责 智联辽宁建设工程网
  • 创建集团上海公司网站住房城乡建设门户网站
  • 网站建设使用的基本技术网站开发验收报告模板
  • 网站生成手机页面报价网站系统
  • 建购物的网站需要多少钱珠海新盈科技有限公 网站建设
  • 网站建设内链网络营销策略内容
  • 高校门户网站系统网站右侧浮动广告
  • 南昌做网站费用企业网站设计与规划论文
  • 做3d图的网站有哪些软件seo搜索引擎优化方案怎么写
  • 廊坊网站建设多少钱深圳做网站报价
  • 怎样可以提升自己的网站wordpress 上传安装不了
  • 个人网站推广方案wordpress官方中文版
  • 潮州有没有做网站的人金融商城快捷申请网站模板下载
  • 医院的网站建设目标开发公司退房款代理词
  • 全景精灵网站建设网站开发工具比较
  • 沈阳网站建设培训提高美誉度的网络营销方式
  • wordpress子目录 多站点网站建设后怎么做主页
  • 怎样让百度收录网站优化教程网官网
  • 3d网站怎么做discuz上传wordpress
  • 商务网站的规划流程wordpress开启静态网页