운영체제

몽이·2022년 7월 1일
0

운영체제

목록 보기
2/9

1. 운영체제

1) 운영체제의 개념

  • 운영체제는 사용자가 컴퓨터 하드웨어를 효율적으로 운용할 수 있도록 인터페이스를 제공해 주는 시스템 소프트웨어이다.

  • 하드웨어와 소프트웨어 리소스를 관리하며 프로그램을 위한 서비스를 제공한다.

  • 운영체제가 관리하는 하드웨어에는 CPU, 기억장치, 입출력장치, 네트워크 장비 등이 있다.

  • 제어 프로그램과 처리 프로그램으로 나뉜다.

    • 제어 프로그램 : 모니터링, 작업 제어, 데이터 관리

    • 처리 프로그램 : 언어 번역, 서비스, 문제해결 응용

  • 대표적인 운영체제의 종류는 Windows, Linux, Unix, Mac OS, Android 등이 있다.

2) 운영체제의 목표(성능 평가 기준)

(1) 처리 능력(Throughput) : 일정 시간 내에 시스템이 처리하는 작업의 양을 의미한다.

(2) 반환 시간(Turn Around Time) : 시스템에 작업을 의뢰한 시간부터 처리가 완료될 때까지 걸린 시간을 의미한다.

(3) 사용 가능도(Availability) : 시스템을 사용할 필요가 있을 때 즉시 사용 가능한 정도를 의미한다.

(4) 신뢰도(Reliability) : 시스템이 주어진 문제를 정확하게 해결하는지를 나타내는 척도이다.

3) 운영체제에서의 시간

(1) 응답 시간(Response time) : 작업이 입력되고 처음 실행되기까지 걸린 시간으로 반응 시간이라고도 한다.

(2) 대기 시간(Waiting time) : 작업이 입력되고 완료되기 전까지의 시간 중 작업이 진행되지 않은 시간의 합이다.

(3) 실행 시간(Running time) : 작업이 입력되고 완료되기 전까지의 시간 중 작업이 진행된 시간의 합이다.

(4) 반환 시간(Turn around time) : 실행 시간과 대기 시간을 모두 합한 시간으로 작업이 완료될 때까지 걸린 시간이다.

(5) 시간 간격(Time Slice, Quantum) : 프로세스가 자원을 사용하기 위해 운영체제로 할당받은 시간이다.

4) 운영체제의 자원관리

(1) 프로세스 관리 : 프로세스(작은 단위의 프로그램)의 생성과 제거, 시작 및 정비, 스케줄링 등을 담당

(2) 기억장치 관리 : 프로세스에게 메모리 할당 및 회수 등을 담당한다.

(3) 주변장치 관리 : 입출력 장치의 스케줄링 및 관리를 담당한다.

(4) 파일 관리 : 파일의 생성과 삭제, 변경, 유지 등의 관리를 담당한다.

2. 윈도우즈(Windows)

(1) 그래픽 사용자 인터페이스(GUI : Graphic User Interface) : 초보자도 쉽게 사용할 수 있게 메뉴나 기능을 마우스로 선택할 수 있는 인터페이스를 적용하였다.

(2) 선점형 멀티태스킹(Preemptive Multi-Tasking)

  • 특정 응용 프로그램이 CPU를 독점하는 것을 방지하고 각 작업의 CPU 이용시간을 제어한다.
  • 문제가 발생하는 프로그램을 강제 종료시킬 수 있다.

(3) PnP(Plug & Play) : 컴퓨터에 특정 하드웨어를 설치했을 때, 하드웨어를 사용하는 데 필요한 환경을 운영체제가 자동으로 구성해준다.

(4) OLE(Object Linking and Embedding) : 응용 프로그램에서 작성된 이미지, 차트 등의 개체를 다른 문서에서 자유롭게 연결하거나 삽입하여 편집할 수 있게 하는 기능이다.

(5) Single-User 시스템 : 한 대의 컴퓨터를 한 사람이 독점해서 사용한다.

3. 유닉스(Unix)

1) 유닉스의 특징

  • C언어를 기반으로 제작되었으며, 이식성이 우수하다.
  • 하나 이상의 작업을 병행 처리할 수 있고, 둘 이상의 사용자가 동시에 시스템을 사용할 수 있다.
  • 표준이 정해져 있고 제품의 공급 업체(Vendor)가 많으며 라이선스 비용이 저렴하다.
  • 계층적 파일 시스템과 풍부한 네트워킹 기능이 존재한다.
  • 쉘 명령어 프로그램과 사용자 위주의 시스템 명령어가 제공된다.

2) 유닉스의 기본 구성

(1) 커널(Kernel)

  • 유닉스의 핵심요소로, 핵심 시스템을 관리하고 서비스를 제공한다.
  • 하드웨어 보호, 사용자 서비스 제공, 프로세스, 메모리, 네트워크, 입출력, 파일 관리 등을 제공한다.

(2) 쉘(Shell)

  • 사용자 명령의 입력을 받아 시스템 기능을 수행하는 명령 해석기이다.
  • 사용자와 커널 사이에서 중계자 역할, 인터페이스를 담당한다.

(3) 유틸리티(Utility)

  • 문서 편집, 데이터베이스 관리, 언어 번역, 네트워크 기능 등을 제공한다.

3) 윈도우즈 & 유닉스 주요 명령어

WindowsUNIX / LINUX기능
DIRls파일 목록 표시
COPYcp파일 복사
TYPEcat파일 내용 표시
RENmv파일 이름 변경
MOVE파일 이동
MDmkdir디렉토리 생성
CDchdir디렉토리 위치 변경
CLSclear화면 내용 지움
ATTRIBchmod파일 속성 변경
FINDfind파일 찾기
CHKDSK디스크 상태 점검
FORMAT디스크 초기화
chown소유자 변경
exec새로운 프로세스 수행
fork새로운 프로세스 생성
fsck파일 시스템 검사, 보수
getpid자신의 프로세스 정보를 얻음
uname시스템의 정보 출력
mount파일 시스템을 마운팅
sleep nn초간 대기
who접속한 사용자 출력
&백그라운드 작업 지시
grep문자열 패턴 검색

4) 유닉스 파일 시스템

(1) Boot 블록 : 부팅에 필요한 프로그램이나 데이터가 기억된 부트스트랩 영역으로 하위에 실린더 블록이 존재한다.

(2) 실린더 블록

  • 슈퍼 블록 : 파일 시스템의 크기, i-node 테이블의 크기, Free Block 리스트 등을 기록
  • 실린더 그룹 : 사용 블록의 정보, 통계적 정보 기록
  • i-node 블록 : 각 파일에 대한 정보를 기억하는 고정된 크기를 갖는 구조체
  • 파일 데이터 블록 : 실제 자료가 저장되어 있는 공간

5) 유닉스 파일과 디렉토리 권한

(1) 권한 지정 순서

  • 파일 타입, 소유자, 그룹, 사용자 순으로 권한을 지정한다.
  • 권한은 읽기, 쓰기, 실행 순으로 권한을 설정한다.

(2) 파일 타입 : 일반 파일(-)과 디렉토리(d)로 구분한다.

(3) r(read) : 읽기 가능(r)과 불가능(-)으로 구분한다.

(4) w(write) : 쓰기 기능(w)과 불가능(-)으로 구분한다.

(5) x(excute) : 실행 가능(x)과 불가능(-)으로 구분한다.

(6) 권한 변경

  • 파일과 디렉토리의 권한을 변경하는 명령어 chmod를 사용하여 권한을 변경한다.

  • 각각의 권한에 2진수를 대응시켜 권한을 변경한다.

    • 1이 가능, 0이 불가능

    • 읽기, 쓰기, 실행 권한을 10진수로 변환하여 표기

4. 리눅스(Linux)

1) 리눅스의 특징

  • 유닉스를 기반으로 하여 소규모 워크스테이션이나 PC에서 사용하도록 제작되었다.
  • 소스 코드 전체를 무료로 공개한 오픈 소스 시스템 소프트웨어이다.
  • 다수의 사용자들이 다수의 응용 프로그램을 동시에 사용할 수 있다.
  • 다양한 배포판이 존재하여 다양한 응용 프로그램을 제공한다.
  • 유닉스에서는 마이크로 커널, 리눅스에서는 모놀리틱 커널을 사용한다.

2) 커널(Kernel)의 종류

(1) 마이크로(Micro) 커널

  • 시스템 운영에 필요한 최소한의 기능들만을 제공한다.
  • 사용자가 필요한 기능을 추가하여 운영체제를 확장할 수 있도록 한다.

(2) 모놀리식(Monolithic) 커널

  • 구현이 간단하여 속도가 빠르다.
  • 임의 기능을 적재하여 동적으로 사용할 수 없다.

3) 안드로이드(Android)

  • Linux 커널을 기반으로 동작으로 오픈소스 모바일 플랫폼(운영체제)이다.
  • 전화를 비롯한 장치를 위한 운영체제와 SMS, 웹 브라우저, 알람 등의 표준 응용 프로그램들을 포함한다.
  • 자바와 코틀린 언어로 개발할 수 있으며 런타임 라이브러리를 제공한다.

5. 쉘 스크립트(Shell Scripts)

1) 쉘 스크립트의 개념

  • 운영체제의 제어 프로그램을 통제할 수 있는 인터프리터 방식의 프로그램이다.
  • 여러 제어 명령을 주기적으로 자동으로 실행시킬 수 있다.
  • 관리자 및 권리 권한을 가진 사용자가 운영체제의 다양한 제어 방식이나 권한을 통제하는 데 사용된다.
  • 원하는 스크립트를 작성하여 sh 파일로 저장한 뒤에 필요할 때 실행한다.
profile
풀스택 개발자가 되는 날까지 달리자!

0개의 댓글