第四周作业

一、求10个随机数的最大值与最小值

#!/bin/bash


numbers=()
for ((i=0; i<10; i++))
do
  numbers[$i]=$((RANDOM % 100))
done


echo "随机数列表: ${numbers[@]}"


min=${numbers[0]}
max=${numbers[0]}


for num in "${numbers[@]}"
do
  if ((num < min))
  then
    min=$num
  fi

  if ((num > max))
  then
    max=$num
  fi
done


echo "最小值: $min"
echo "最大值: $max"
 

二、使用递归调用,完成阶乘算法实现

#!/bin/bash


factorial() {
  local num=$1
  local result=1

  if [ $num -eq 0 ]; then
    echo $result
  else
    for ((i=1; i<=$num; i++))
    do
      result=$((result * i))
    done

    echo $result
  fi
}
result=$(factorial 10)
echo "10的阶乘: $result"
 

三、解析进程和线程的区别

进程是操作系统资源分配的基本单位,而线程是处理器任务调度和执行的基本单位。

 一个进程至少有一个线程,线程是进程的一部分,所以线程也被称为轻权进程或者轻量级进程。

每个进程都有独立的地址空间,进程之间的切换会有较大的开销;线程可以看做轻量级的进程,同一个进程内的线程共享进程的地址空间,每个线程都有自己独立的运行栈和程序计数器,线程之间切换的开销小。

一个进程崩溃后,在保护模式下其他进程不会被影响,但是一个线程崩溃可能导致整个进程被操作系统杀掉,所以多进程要比多线程健壮。

四、总结OOM原理,及处理方法

OOM是内存不足,系统会通过杀掉一些进程来释放内存。

处理方法:查看是哪个进程占用过多内存,将该进程关闭;

或者加大内存。

五、总结内核设计流派及特点

内核设计流派:

单内核:单一的体系结构,将所有的功能都集中在一起

特点:效率更高。

微内核:将各个功能做成不同的内核子系统

特点:稳定性高,单效率低。

六、手写chkconfig服务脚本,可以实现服务的开始,停止,重启

#!/bin/bash


SERVICE_NAME="my_service"


SERVICE_START_COMMAND="/path/to/start_command"


SERVICE_STOP_COMMAND="/path/to/stop_command"


check_service_status() {
    if ps aux | grep -v grep | grep -q "$SERVICE_START_COMMAND"; then
        echo "Service is running."
    else
        echo "Service is not running."
    fi
}


start_service() {
    if check_service_status; then
        echo "Service is already running."
    else
        echo "Starting service..."
        $SERVICE_START_COMMAND
    fi
}


stop_service() {
    if check_service_status; then
        echo "Stopping service..."
        $SERVICE_STOP_COMMAND
    else
        echo "Service is not running."
    fi
}


restart_service() {
    stop_service
    start_service
}


case "$1" in
    start)
        start_service
        ;;
    stop)
        stop_service
        ;;
    restart)
        restart_service
        ;;
    status)
        check_service_status
        ;;
    *)
        echo "Usage: $0 {start|stop|restart|status}"
        exit 1
        ;;
esac

exit 0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值