Giter Site home page Giter Site logo

os2023's Introduction

OS2023

숭실대학교 운영체제 2023 수업 과제 레포지토리입니다.

사용한가상환경 : Virtual Box

운영체제 : Ubuntu 20.04.6 LTS, linux-image-5.15.120


과제1

리눅스 ps 명령어와 유사한 결과를 출력할 수 있는 newps 명령어를 system 함 수 or exec 계열 함수를 사용하지 않고, /proc file system을 활용하여 구현하기.


과제2

아래 연산을 수행하는 시스템콜을 생성하기

  1. 자연수 1개 입력 시 자릿수를 거꾸로 변경한 숫자를 출력한 후 다음 입력을 대기, 2) 자연 수, 부호(+ 또는 -), 자연수 순서로 입력 시 입력된 부호와 반대되는 연산 결과를 출력한 후 다음 입력을 대기, 3) 앞의 두가지 경우 외 스트림 입력 시에는 “Wrong Input!” 출력한 후 다음 입력을 대기, 4) 아무것도 입력되지 않으면 프로그램 종료

과제3

리눅스 커널 5.15.120 버전에서 아래 기능을 수행하는 프로그램 구현 (100점 만점, 추가 구 현시 가산점 최대 50점, 총 과제 점수의 35%. 70점 이상 Pass) ○ 시스템콜을 활용하여 리눅스 커널의 스케줄링 정책을(CFS, RT_FIFO, RT_RR) 변경하면서 프로세스들의 실행 순서 및 실행 시간을 확인할 수 있는 프로그램 작성

  • 총 4개의(CFS_DEFAULT, CFS_NICE, RT_FIFO, RT_RR) 스케줄링 정책 중 하나를 선 택하는 입력을 받은 후, 해당 스케줄링 정책을 적용받는 프로세스 21개를 생성한 후 (생성되는 프로세스들은 동일한 배열 연산을 수행), 프로세스들의 종료되는 순서 및 실 행시간 출력 (70점) (CFS_DEFAULT: 10점, CFS_NICE: 20점, RT_FIFO: 20점, RT_RR: 20점)
  • (명령어 또는 시스템콜을 통해) RT_RR 스케줄링 기법의 Time Slice를 3가지로 변경 해 보면서 (10ms, 100ms, 1000ms) 프로세스들의 실행 시간 비교 (20점)
  • 구현 과정 설명, 실행 화면 스냅샷, 실행 결과 분석 내용을 포함하는 보고서 작성 (10 점)
  • 스케줄링 정책 변경에 따른 프로세스들의 실행 순서 및 실행 시간을 정확하게 분석하 기 위해서는 (명령어 입력 또는 시스템콜을 통해) CPU 코어를 1개만 사용하도록 제한 해야 함 ○ 커널 코드 수정을 통해 RT_FIFO 스케줄링 정책을 구현하고 (가산점 25점), 생성되는 각 프로세스의 CPU 점유 시간 (CPU burst: 할당 받은 CPU로 연산을 수행하는 시간) 누적값 을 프로세스 종료 시 커널 로그에 출력하도록 한 후 (가산점 25점), 이를 테스트할 수 있 는 프로그램 작성. 테스트 프로그램은 (시스템콜을 활용한 스케줄링 정책 변경 없이) 동일 한 배열 곱셈 연산을 수행하는 21개의 프로세스를 실행시키면 됨

과제4

가상메모리 관리를 위해 사용되는 4가지 페이지 교체 알고리즘 Optimal, FIFO, LRU, Second-Chance(One-handed Clock)를 C언어로 프로그래밍하여 각 페이지 교체 알고리 즘에 대한 동작 결과를 출력하는 시뮬레이터 구현하기

  • Optimal: 25점, FIFO: 20점, LRU: 25점, Second-Chance: 25점
  • 구현 과정 설명, 실행 화면 스냅샷, 실행 결과 분석 내용을 포함하는 보고서 작성 (5 점)

os2023's People

Contributors

devdan09 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.