[CS101] Part4. 운영체제

이효원·2024년 2월 6일
0

한빛CS101

목록 보기
5/15
post-thumbnail

운영체제 OS
: 하드웨어의 각 장치를 관리하고, 사용자가 컴퓨터를 편리하게 사용할 수 있는 환경을 제공하는 시스템 소프트웨어

사용자와 하드웨어 사이에 어떤 소통이 이루어지려면 응용 소프트웨어와 시스템 소프트웨어 사이에도 소통이 필요하다. 여기서 시스템 소프트웨어 안에 포함이 되는 것이 운영체제. 즉, 사용자와 하드웨어 사이에 운영체제가 응용 소프트웨어를 통한 사용자의 하드웨어 사용을 운영할 수 있도록 도와주는 것이 운영체제인 것이다.

운영체제가 하는 일
: 프로그램에 필요한 자원 할당
: 사용자에게 편리한 사용 제공

운영체제의 종류
: 맥OS, 윈도우, 리눅스, 안드로이드, IOS,

운영체제의 기능
-프로세스 관리
-기억장치 관리
-파일 시스템 관리

🖥️ 주기억장치

주기억장치는 저번에 공부했듯이,
비휘발성 메모리인 ROM영역과 휘발성 메모리인 RAM영역으로 구성되어 있다.

ROM 안에는 BIOS라는 것이 있는데,
-> BIOS : 컴퓨터 입출력 장치 및 기타 장치들의 구동을 준비한다. 즉, 컴퓨터 전원이 켜지면서 지금 사용자가 사용한 하드웨어들이 모두 정상적으로 작동하는지 체크를 한다는 것.

RAMKernel영역사용자영역, 두 영역으로 나뉘게 된다.
-> Kernel영역 : 운영체제만 적재될 수 있도록 운영체제가 관리하는 정보만 적재 가능.
-> 사용자영역 : 사용자가 이용하는 응용 프로그램이 적재됨

이렇게 주기억장치는 BIOS, Kernel, 사용자 영역 3가지로 이루어져 있다.사용자 영역은 또 4가지 영역으로 나뉜다 : 스택영역, 힙영역, 데이터영역, 코드영역

  • 스택영역 : 일시적인 데이터가 적재됨
  • 힙영역 : 프로그래머가 할당하는 데이터가 적재됨
  • 데이터영역 : 프로그램 실행 시 고정 데이터가 적재됨
  • 코드영역 : 실행가능한 프로그램 코드가 적재됨

관리 기법

1. 단일 연속 관리 기법 : 주기억장치의 사용자 영역에 하나의 프로그램만 적재하여 운영
2. 분할 영역 관리 기법 : 주기억장치의 사용자 영역에 하나 이상의 프로그램을 적재하여 운영

(분할영역관리 기법에서의)배치 전략

1. 최초 적합 : 비어있는 영역들 중 가장 첫번째 영역에 할당
2. 최적 적합 : 비어있는 영역들 중 프로세스의 크기와 가장 비슷한 크기의 영역에 할당
3. 최악 적합 : 비어있는 영역들 중 가장 큰 영역에 할당

-> 단편화 : 지금 프로세스가 할당될 수 없는 영역이 발생하는 현상
-> 내부단편화 : 공간의 크기가 프로세스의 크기보다 커서 메모리가 남지만, 다른 프로세스가 사용할 수 없는 상태
-> 외부단편화 : 남아있는 메모리의 크기가 실행하고자 하는 프로세스보다 크지만, 연속적이지 않은 공간에 존재하여 실행하지 못하는 현상

최악 적합이 항상 가장 나쁜게 아니다, 단편화가 일어나지 않도록 적절히 골라서 사용해야 함

+) 보조기억장치

보조기억장치는 부팅프로그램, 운영체제, 기타 응용프로그램들로 구성되어 있다.

🖥️ 부팅

부팅 : 컴퓨터 전원이 켜지면 컴퓨터를 사용할 수 있도록 준비하는 과정

부팅 과정
1. 전원을 킨다.
2. BIOS가 CPU로 가면서 입출력장치 및 주변장치 체크
3. 오류나 문제가 없으면 BIOS가 하는 일 끝
4. 보조기억장치의 부팅프로그램이 커널영역에 들어와서 운영체제를 적재시킨다.
5. 운영체제가 커널영역에 적재되면서 운영체제가 컴퓨터를 운영하기 시작
6. 부팅 끝! 이제는 사용자가 컴퓨터를 사용하면 된다

🖥️ 파일

: 보조기억장치에 저장된 연관성 있는 데이터의 집합
파일명.확장자 형태로 이루어져 있다. -> 중간대체과제.docx 13주차레포트.pdf

디렉토리

: 관련있는 파일들의 집합
-> 윈도우즈에서 디렉토리를 🗂️ 폴더 모양으로 만들어서 폴더라고 부르기도 함
/ 루트 디렉토리 : 가장 상위 디렉토리 (대부분 C드라이브)
그 아래에 하위 디렉토리 들이 존재, 그 디렉토리들 안에 파일들 존재.

파일 시스템

: 보조기억장치에 저장된 파일과 디렉터리를 관리하는 시스템

파일시스템 과정
: 응용 프로그램운영체제한테 파일 읽기/쓰기 작업을 요청 -> 운영체제보조기억장치에 파일 읽기/쓰기 작업을 함

1. FAT 파일 시스템
Windows 파일 시스템에는 FAT 파일 시스템과 NTFS 파일 시스템이 있다.
더 많이 사용하는 것이 FAT 파일시스템이다.

  • 시스템 영역

    • 부트레코드 : 부팅 시 필요한 프로그램 저장
    • FAT : 데이터 영역에서 사용되는 부분 표시 (테이블 형태로 정보 저장)
    • 루트 디렉터리 : 루트 디렉터리 정보 저장
  • 데이터 영역 : 서브 디렉토리와 파일 데이터 저장

2. UNIX 파일 시스템

  • 시스템 영역

    • 부트블록 : 부팅 시 필요한 프로그램 저장
    • 슈퍼블록 : 전체 파일 시스템에 대한 정보 저장
  • 데이터 영역

    • i-node 블록 : 각 파일이나 디렉토리에 대한 정보 저장
    • 데이터 블록 : 디렉터리와 파일 데이터 저장

🖥️ 명령 / 명령어

: CPU는 컴퓨터의 각 장치에 명령을 내림

명령의 구조

명령은 원래 동작 + 동작의 대상 으로 구성이 된다.
CPU가 사용하는 명령도 연산코드(operation code) + 피연산자(operand)로 구성된다.
-> 연산코드 : 명령어
-> 피연산자 : 실제 데이터 or 데이터 주소

명령의 형식

1. 0-주소 명령어
: 피 연산자 없이 연산 코드만으로 구성되는 명령어

  • 모든 연산은 스택에 있는 데이터를 이용하여 꺼냄
  • 형태 : 연산코드
  • 결과값 저장 : 저장된 구조의 변화

2. 1-주소 명령어
: 연산 코드와 1개의 피연산자로 구성되는 명령어

  • 하나의 피연산자만 포함하고 다른 피연산자나 결과값은 누산기에 저장됨
  • 형태 : 연산코드 + 피연산자
  • 결과값 저장 : CPU 내 레지스터

3. 2-주소 명령어
: 연산 코드와 2개의 피연산자로 구성되는 명령어

  • 연산 결과는 피연산자1 에 저장되므로 피연산자1 에 저장되어 있던 원래의 데이터가 지워짐
  • 형태 : 연산코드 + 피연산자1 + 피연산자2
  • 결과값 저장 : 피연산자1

4. 3-주소 명령어
: 연산 코드와 3개의 피연산자로 구성되는 명령어

  • 연산 결과는 피연산자3 에 저장되므로 연산 후 입력 데이터가 변하지 않고 보존됨.
  • 형태 : 연산코드 + 피연산자1 + 피연산자2 + 피연산자3
  • 결과값 저장 : 피연산자3

명령어

1. 데이터 전송 명령어
: CPU와 주기억장치 사이의 데이터 이동을 담당하는 명령어

  • MOVE ex) (IR)MOV R2 [100] (2-주소 명령어): 100번지 값을 R2로 이동, 데이터 버스에 100번지 값을 이동시켜 R2에 저장
  • PUSH : 삽입하는 명령
  • POP : 삭제하는 명령

2. 연산 명령어
: 연산장치에서 산술 논리 연산을 하도록 해주는 명령어

  • 산술 연산 명령어
    • ADD ex)(IR) ADD R1 R2
    • SUB ex)(IR) SUB R1 R2
    • MUL ex)(IR) MUL R1 R2
    • DIV ex)(IR) DIV R1 R2
  • 논리 연산 명령어
    • AND
    • OR
    • NOT
    • XOR
  • (시프트) 명령어
    • SHR R1 n (Shift Right)
    • SHL R1 n
    • CIR R1 n
    • CIL R1 n

3. 분기 명령어
: 명령들 사이에서 건너뛰도록 해주는 명령어

  • JUMP [메모리 주소]
  • CALL [메모리 주소] : JUMP했다가 다시 돌아옴.

✏️ 내가 만든 문제

Q. 데이터 전송 명령어 중 MOVEPOP의 차이점을 설명하시오.

✏️ 해답

A.
MOVE명령어는 주기억장치에서 데이터를 옮길 때 데이터가 삭제되지 않고,
POP명령어는 스택영역에서 데이터를 가지고 올 때 데이터가 삭제된다.

MOVE명령 : 주기억장치에 있는 데이터를 복사해서 어떤 위치에 옮겨놓는, 이동시키는 명령이다.

POP명령 : 스택영역에 있는 데이터를 가지고 올 때, 스택 영역에서 데이터가 삭제된다.

0개의 댓글