04 2024 档案
摘要:内存管理目标 MAIN MEMORY Main memory(主内存) is central(中心) to the operation(运作) of a modern computer system. Memory consists of a large array of bytes(一大组字节数据
阅读全文
摘要:死锁的特征 哲学家用餐死锁问题 哲学家死锁当所有人同时拿到一侧的筷子的时候,就会发生永久等待的现象 DEADLOCK(死锁的定义) In a multiprogramming environment(多道程序设计环境),several(一些) process may compete(竞争) for
阅读全文
摘要:信号量实现同步 举个例子 在这里司机启动车辆需要售票员关车门,售票员开车门需要司机到站停车。 对于这两个线程来说 需要设置两个semaphore d=0;semaphore c=0; 为什么呢,因为有执行顺序的问题,只有售票员关门时候才可以启动车辆,设置一个d=0,司机启动汽车时候,这个线程执行p(
阅读全文
摘要:要使用信号量,请先包含头文件<semaphore.h> sem_t :信号量的数据类型 int sem_init(sem_t *sem,int pshared,unsigned int val); 该函数第一个参数为信号量指针,第二个参数为信号量类型(一般设置为0),第三个为信号量初始值,第二个参数
阅读全文
摘要:信号量与pv操作 信号量 信号量(Semaphore)是一种比互斥锁更强大的同步工具,它可以提供更加高级的方法来同步并发进程。 A semaphore S is an integer variable that ,apart from initialization(初始化),is accessed
阅读全文
摘要:进程与进程的锁和线程与线程的锁是不一样的。 abc三部曲 pthread_mutex_t lock =PTHREAD_MUTEX_INITIALIZER;//创建一个锁 pthread_mutex_lock(&lock);//上锁 pthread_mutex_unlock(&lock);//开锁 对
阅读全文
摘要:临界区问题(critical-section problem) Each concurrent(并发) process has a segment of code ,called a critical section,in which the process may be changing comm
阅读全文
摘要:并发进程之间的关系 在内存中同时存在的若干个进程/线程,由操作系统的调度程序采用适当的策略将他们调度至cpu上运行,同时维护他们的状态队列。 多个并发进程/线程从宏观上是同时在运行; 从微观的角度看,他们的运行过程是走走停停; 并发的进程/线程是交替执行(Interleaving); Linux 操
阅读全文
摘要:基本概念 多道程序设计的目的将CPU的利用率最大化 多个进程同时存在于内存(并发),当一个进程暂不使用cpu时,系统调用另一个进程占用cpu。 cpu调度程序 whenever the cpu becomes idle(空闲) the operating system must select one
阅读全文
摘要:实验1 #include<stdio.h> #include<pthread.h> void * threadFunc(void* arg){ printf("IN NEW thread\n"); } int main(){ pthread_t tid; //线程创建函数 /* 1. thread
阅读全文
摘要:动机 一个应用通常需要处理很多工作,这些同时执行徳任务可以称为“执行流”,我们不希望他们是顺序执行的。 进程的创建需要消耗大量的时间和资源 现在,和一个应用相关的所有执行的任务都装在一个进程里面,这些进程内部的执行任务就是“线程” thread multithreaded process(多线程)
阅读全文
摘要:引子(关于进程) 执行完fork()之后 创建了一个子进程 clone父进程 pid是不一样 fork()后面的代码,会执行2遍(父和子进程各执行1次) 父子进程并发执行 父子进程的内存空间是独立的 wait() 父进程等待子进程结束 避免孤儿进程 线程(Thread) 多线程:很简陋的方式来说,在
阅读全文
摘要:进程切换 并发进程的切换 并发进程中,一个进程在执行过程中可能被另一个进程替换占有CPU,这个过程称为“进程切换” 是什么触发了进程切换? 进程切换时要做什么? 操作系统到底做了什么操作 2 中断技术 中断是指程序执行过程中 当发生某一个事件时,中止cpu上现行的程序的运行 interrupt:ex
阅读全文
摘要:进程的定义 程序和进程 A program is a passive entity(是被动的主体),such as a file containing a list of instructions stored on disk(often called an executable file(就是可执
阅读全文
摘要:操作系统的服务 最顶层是user interfaces 主要是gui,batch,command line 给用户使用操作系统 第二层是system calls(系统调用) 给程序员来使用,调用一些接口 第三层是service program execution:应用程序 I/O operation
阅读全文
摘要:介绍 早先的计算机是只有操作面板,没有显示屏,是只有输入和输出。 从这张图可以看到很多的信息 operating system:操作系统 system and appllcation programs:系统程序与应用程序 compller: 编译器 assembler:汇编器 database sy
阅读全文