2026/4/18 10:59:16
网站建设
项目流程
南平建设企业网站,一个网站的建设流程有哪些资料,查看网站是否备案,江宁网站建设价格1. 什么是进程#xff1f;比较进程与程序进程#xff1a;是正在运行的程序的实例#xff0c;是操作系统进行资源分配和调度的基本单位#xff0c;包含代码、数据、PCB#xff08;进程控制块#xff09;等。进程 vs 程序#xff1a;程序是静态的#xff08;存储在磁盘的…1. 什么是进程比较进程与程序进程是正在运行的程序的实例是操作系统进行资源分配和调度的基本单位包含代码、数据、PCB进程控制块等。进程 vs 程序程序是静态的存储在磁盘的指令集合进程是动态的有生命周期创建、运行、结束程序不占用系统资源进程占用 CPU、内存等资源一个程序可对应多个进程如打开多个 “记事本” 程序。2. 为什么要引入进程这一概念进程存在的标志是什么引入原因程序是静态的无法描述 “并发执行” 的动态行为如多个程序同时运行时的资源竞争、状态变化进程能刻画程序的动态执行过程实现资源分配与调度。存在标志进程控制块PCB操作系统通过 PCB 识别和管理进程。3. 什么是进程控制块举例说明操作系统是如何利用进程控制块中的信息来管理进程的进程控制块PCB是操作系统管理进程的核心数据结构存储进程的状态、PID、程序计数器、寄存器、资源占用等信息。管理举例调度进程时通过 PCB 中的 “优先级” 决定下一个运行的进程进程阻塞时通过 PCB 中的 “状态” 将其移入阻塞队列进程切换时通过 PCB 保存 / 恢复寄存器、程序计数器等上下文信息。4. 什么是操作系统内核操作系统内核主要完成什么功能操作系统内核是操作系统的核心部分运行在特权态直接控制硬件并提供基础服务。核心功能进程管理调度、同步互斥、内存管理分配 / 回收、设备管理驱动、I/O 控制、中断处理。5. 操作系统在什么时候创建进程操作系统如何创建一个进程创建时机用户执行程序如双击 exe、系统启动服务如开机启动进程、进程主动创建子进程如fork()。创建过程分配唯一 PID创建 PCB 并初始化状态设为 “就绪”分配内存加载程序代码、数据将进程加入就绪队列。6. 什么是进程的阻塞、唤醒、挂起阻塞进程因等待资源如 I/O 完成、锁而暂停执行状态转为 “阻塞态”移出运行队列。唤醒进程等待的资源就绪后由操作系统将其状态转为 “就绪态”加入就绪队列。挂起进程被暂时调出内存如内存不足状态转为 “挂起态”数据暂存磁盘后续可被唤醒并调回内存。7. 举例说明时钟对于计算机系统的重要性时钟是系统的 “时间基准”例如进程调度按时间片切换进程依赖时钟中断定时任务如 “30 分钟后自动关机”依赖时钟计时时间戳文件修改时间、日志时间等由时钟提供。8. 时钟中断信号是如何产生的时钟中断处理程序的功能是什么产生方式硬件时钟如晶体振荡器按固定频率如 100Hz产生脉冲触发时钟中断。处理程序功能更新系统时间递减进程时间片时间片用完则触发进程调度处理定时任务如超时检测。9. 什么是进程的就绪态、阻塞态、执行态在什么情况下发生三种状态的转换就绪态进程已准备好等待 CPU 调度阻塞态进程等待资源无法执行执行态进程正在 CPU 上运行。状态转换就绪→执行进程被调度器选中执行→就绪时间片用完或高优先级进程进入就绪队列执行→阻塞进程请求 I/O、等待锁等资源阻塞→就绪进程等待的资源就绪如 I/O 完成。10. 说明进程的阻塞和唤醒的过程阻塞过程进程请求资源自身状态改为 “阻塞”操作系统将其 PCB 移入阻塞队列调度其他就绪进程执行。唤醒过程资源就绪如 I/O 完成操作系统找到对应的阻塞进程将其状态改为 “就绪”PCB 移入就绪队列等待调度器选中执行。11. 什么是用户空间什么是系统空间什么是系统态什么是用户态用户空间用户进程运行的内存区域权限低不能直接访问硬件。系统空间内核运行的内存区域权限高可直接访问硬件。系统态内核态CPU 的特权模式运行内核代码可执行所有指令。用户态CPU 的非特权模式运行用户程序只能执行受限指令。12. 举例说明系统调用的执行过程。系统调用和普通函数有什么区别系统调用执行过程以open()为例1.用户程序调用open()触发软中断陷入内核2.CPU 切换到系统态保存用户态上下文3.内核执行open()对应的系统调用处理函数4.处理完成后恢复用户态上下文返回用户程序。系统调用 vs 普通函数普通函数在用户态执行不切换特权级系统调用会切换到系统态由内核执行可访问硬件资源。13. 什么是线程为什么引入线程线程是进程内的执行单元共享进程的资源内存、文件句柄等是 CPU 调度的基本单位。引入原因进程切换开销大需切换地址空间线程切换开销小共享资源更适合并发场景如多任务的程序。14. 什么是用户级线程什么是内核级线程试对两者进行比较用户级线程由用户库如 pthread管理内核无感知内核级线程由操作系统内核管理内核直接调度。比较维度用户级线程内核级线程调度单位进程内核看不到线程线程切换开销小用户态切换大内核态切换并发性同一进程内线程不能并行单 CPU可并行多 CPU依赖内核不依赖依赖15. 线程与进程有什么区别和联系联系线程是进程的一部分共享进程的资源内存、文件等一个进程至少有一个线程。区别资源分配进程是资源分配单位线程不独立分配资源调度线程是 CPU 调度单位进程是资源隔离单位开销线程切换开销远小于进程。16. 分别说明用户级线程与内核级线程的阻塞和唤醒过程用户级线程阻塞线程阻塞时整个进程会被内核阻塞因为内核看不到线程需用户库调度进程内其他线程。用户级线程唤醒由用户库将阻塞线程标记为就绪等待库调度执行。内核级线程阻塞线程阻塞时内核将其状态改为阻塞调度其他线程同进程或其他进程执行。内核级线程唤醒内核将阻塞线程改为就绪加入就绪队列等待 CPU 调度。17. 说明操作系统的引导过程操作系统引导开机启动过程加电自检POST检查硬件CPU、内存、磁盘是否正常加载 BIOS运行 BIOS 程序找到启动设备如硬盘加载引导程序MBR从启动设备读取 MBR主引导记录执行引导程序加载内核引导程序加载操作系统内核到内存初始化系统内核初始化硬件、启动服务进入用户界面。18. 用 C 语言实现一个多线程程序以 Linux 下 pthread 为例c运行#include stdio.h #include pthread.h #include unistd.h // 线程函数打印线程ID和计数 void *thread_func(void *arg) { int thread_num *(int*)arg; for (int i 0; i 3; i) { printf(线程 %d计数 %d\n, thread_num, i); sleep(1); // 休眠1秒 } pthread_exit(NULL); // 退出线程 } int main() { pthread_t tid1, tid2; int num1 1, num2 2; // 创建线程1 if (pthread_create(tid1, NULL, thread_func, num1) ! 0) { perror(创建线程1失败); return 1; } // 创建线程2 if (pthread_create(tid2, NULL, thread_func, num2) ! 0) { perror(创建线程2失败); return 1; } // 等待线程结束 pthread_join(tid1, NULL); pthread_join(tid2, NULL); printf(所有线程执行完成\n); return 0; }编译运行需链接 pthread 库gcc thread_demo.c -o thread_demo -pthread