-
OS와 ProcessCS(ComputerScience) 2021. 1. 5. 12:35
안녕하세요. 그린입니다!
이번 포스팅에서는 OS와 프로세스 그리고 간략하게 DB 및 프로세스 스케쥴링에 대해 알아보겠습니다..!
1. 운영체제 (OS)
-. 운영체제의 역할
1) 시스템 하드웨어 관리
2) 시스템 서비스 제공
3) 자원관리
4) 주기억장치 관리 (단순관리 / 가상메모리)
5) 파일관리 (응용프로그램 <-> OS <-> 보조기억장치) -> 파일시스템을 통해 관리
2. 프로세스
: 컴퓨터에서 실행되고 있는 프로그램을 뜻한다.
-. 프로세스의 상태
1) 생성: 프로세스 생성
2) 실행: CPU를 차지하여 명령어들이 실행
3) 준비: CPU 사용하진 않지만 언제든 사용할 수 있는 상태로 CPU 할당 대기
4) 대기: 입출력 및 신호 수신을 기다리는 상태 (보류 상태로도 부름)
5) 종료: 프로세스 종료
-> 해당 5가지 상태중 준비/실행/대기 상태를 CPU에 의해 반복된다.
-> OS가 교통정리를 해준다.
-. 프로세스 스케쥴링
1) FCFS(First Come First Serve Scheduling): 준비 상태의 큐를 순서대로 CPU에 할당
2) SJF(Shortest Job First Scheduling): 실행시간이 적은 프로세스를 우선적으로 CPU 할당,
무한 대기 발생될 가능성이 있지만 평균 대기시간이 가장 적다.
3) Round Robin Scheduling: FCFS의 변형으로 시간을 공통적으로 할당해 실행/대기를 반복한다.
계속 돌고 돌기때문에 문맥교환 및 오버헤드가 높게 발생한다.
4) Priority Based Scheduling: 우선순위를 부여하여 CPU에 할당
5) MultiLevel Queue Scheduling: 그룹에 따라 다른 준비단계 큐에 다른 스케쥴링 기법을 사용한다.
상위단계 프로세스에 CPU를 할당한다.
3. 커널
: OS의 핵심적인 뼈대로 App과 CPU/Memory/Devices 사이 역할을 해준다. (ex) Linux)
4. DateBase
: 데이터의 집합
1) 자료구조: 주기억장치에서 이뤄질 내용
2) DB: 보조기억장치에서 이뤄질 내용
-. DBMS: DB를 관리해주는 소프트웨어
-. SQL: DBMS를 통해 데이터를 관리하기 위한 구조화된 질의문 작성 언어
5. Mac OS와 관련된 물음
1) Windows 32/64 bit, ARM 등 다양한 OS 버전이 의미하는것과 존재하는 이유?
-> 성능과 목적에 따른 버전이 존재한다. 64bit 버전이 생겼지만 32bit 버전이 존재하는 이유는 적은 데이터 처리를 위한곳도 있을것으로 목적에 따라 다양한 OS 버전이 존재한다.
2) 인텔 Mac OS와 ARM 버전 Mac OS의 차이 및 iOS 애플리케이션을 구동할 수 있는 이유?
-> 기존 매킨토시 컴퓨터는 인텔의 CPU를 탑재함으로 다른 CPU 아키텍처를 사용하고 있었다.
그러기에 동일 작업을 수행하더라도 필요한 명령어들이나 처리 방식이 달랐다.
ARM 버전의 CPU를 탑재한 새로운 매킨토시 컴퓨터는 모바일 기기의 CPU 아키텍처와 동일한 아키텍처를 사용하기에
별도의 처리 과정을 하지 않아도 사용할 수 있다.
3) 목적에 따른 프로세스 스케쥴링 방식?
-> 모든 프로세스가 공평하게 실행해야 하는 경우: Round-Robin Scheduling
-> 최대한 많은 프로세스를 실행해야 하는 경우: Shortest Job First
->우선순위에 따라 실행해야 하는 경우: Priority Based Scheduling, MultiLevel Queue Scheduling,
MultiLevel Feedback Queue Scheduling, HRN
이렇게 이번에는 OS와 프로세스 가장 중요한 컴퓨터의 지식이라고 할 수 있는 부분을 학습해보았습니다!
추후 코딩을 하다보면 병렬적으로 처리해야 하는 일들이 생길때 프로세스와 쓰레드를 가지고 멀티태스킹을 해줘야하는 경우가 발생합니다.
지금 운영체제와 프로세스에 대해 기반을 닦아두어 훗날 눈부시게 사용할 수 있습니다 :0
감사합니다! :D
'CS(ComputerScience)' 카테고리의 다른 글
Cache (0) 2021.02.04 HTTP & TCP/IP (0) 2021.01.18 자료구조와 알고리즘 (0) 2020.12.08 SOLID (0) 2020.12.03 컴퓨터과학 기초 (0) 2020.11.05