每日训练-day35

day35_0603

选择题

 产生死锁的原因主要是:
(1) 因为系统资源不足。
(2) 进程运行推进的顺序不合适。
(3) 资源分配不当等。

如果系统资源充足,进程的资源请求都能够得到满足,死锁出现的可能性就很低,否则
就会因争夺有限的资源而陷入死锁。其次,进程运行推进顺序与速度不同,也可能产生死锁

 并发是同时执行不过微观上是串行的,并行是同时执行,但是是不同的处理器执行。

例子是说并发是一个馒头喂两个人,并行是两个馒头喂两个人。

 为了保证 CPU 执行指令时可正确访问 存储单元 ,需将 用户程序 中的逻辑 地址转换 为运行时由机器 直接寻址 的物理地址,这一过程称为地址映射。

发生“抖动”的根本原因是:

      同时在系统中运行的进程太多,由此分配给每一个进程的物理块太少,不能满足进程正常运行的基本要求,致使每个进程在运行时,频繁地出现缺页,必须请求系统将所缺之页调入内 存。

 最直接有效的方法当然是撤销部分进程。

 

 系统常驻内存是硬盘

JCB 作业控制块

PCB 进程控制块

 内存就绪就是活动就绪,辅存就绪是静止就绪,静止就绪需要转换到活动就绪,才能在时间片到来而进入到运行状态。

 

同一进程间的线程共享的资源有:

a. 堆  由于堆是在进程空间中开辟出来的,所以它是理所当然地被共享的;因此new出来的都是共享的(16位平台上分全局堆和局部堆,局部堆是独享的)

b. 全局变量 它是与具体某一函数无关的,所以也与特定线程无关;因此也是共享的

c. 静态变量 虽然对于局部变量来说,它在代码中是“放”在某一函数中的,但是其存放位置和全局变量一样,存于堆中开辟的.bss和.data段,是共享的

d. 文件等公用资源  这个是共享的,使用这些公共资源的线程必须同步。Win32 提供了几种同步资源的方式,包括信号、临界区、事件和互斥体。

独享的资源有:

a. 栈 栈是独享的

b. 寄存器  这个可能会误解,因为电脑的寄存器是物理的,每个线程去取值难道不一样吗?其实线程里存放的是副本,包括程序计数器PC

线程共享的环境包括:进程代码段、进程的公有数据(利用这些共享的数据,线程很容易的实现相互之间的通讯)、进程打开的文件描述符、信号的处理器、进程的当前目录和进程用户ID与进程组ID。

编程

年会抽奖

 说白了就是每个人抽到的都不是自己的名字的概率

import java.util.Scanner;
public class Main{
    public static void main (String[] args){
     Scanner sc=new Scanner(System.in);
        while(sc.hasNext()){
            int n=sc.nextInt();
            float f=method(n);
            float m=f/function(n)*100;
            System.out.printf("%.2f%%\n",m);
        }
    }
    public static float function(int n){
         //有n个人会出现多少种情况
        if(n==1){
            return 1;
        }
        return n*function(n-1);
    }
    public static float method(int n){
        //有n个人会出现多少种排错的情况
        if(n==1){
            return 0;
        }else if(n==2){
            return 1;
        }
        return (n-1)*(method(n-1)+method(n-2));
   }
}

抄送列表

import java.util.Scanner;
public class Main{
    public static void main(String[] args){
        Scanner sc=new Scanner(System.in);
        while(sc.hasNextLine()){
            String str1=sc.nextLine();
            String str2=sc.nextLine();
            int len=str2.length();
            int i=0;
            String s="";
            while(i<str1.length()){
                if(str1.charAt(i)=='"'){
                    i++;
                while(str1.charAt(i)!='"'){
                    s+=str1.charAt(i);
                    i++;
                }
            }else {
                    while(i<=str1.length()-1&&str1.charAt(i)!=','){
                        s+=str1.charAt(i);
                        i++;
                    }
                }
                if(s.contains(str2)&&len==s.length()){
                    System.out.println("Ignore");
                    break;
                }else{
                    if(i>=str1.length()-1){
                        System.out.println("Important!");
                    }
                    s="";
                     i++;
                }
            }
        }
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值