본문 바로가기

cs/운영체제

운영체제 2강 introduction to Operating Systems

https://core.ewha.ac.kr/publicview/C0101020140307151724641842?vmode=f 

 

반효경 [운영체제] 2. Introduction to Operating Systems

설명이 없습니다.

core.ewha.ac.kr

 

2강 운영체제 소개

운영체제의 좁은의미 (커널이라고 부름)

-> 운영체제의 핵심 부분으로 메모리에 상주하는 부분(컴퓨터 전원을 키고 난후 메모리에 항상 상주해있는 부분) -> 전공자 입장에서의 운영체제

운영체제의 넓은 의미

-> 커널 뿐 아니라 각종 주변 시스템 유틸리티를 포함한 개념(윈도우에 부가적인 프로그램 설치되는것 같은것 파일 복사기 이런것 메모리에 항상 상주하는것은 아닌 독립적인 프로그램이지만 운영체제의 범주에 드는것)

 

운영체제의 목적

운영체제는 하드웨어를 효율적으로 관리하는것이 운영체제의 제1 목적(하드웨어 관점)

운영체제의 자원:

하드웨어 자원 -> 프로세서,기억장치,입출력 장치

소프트웨어 자원 -> 프로세스, 파일, 메시지

 

하드웨어 자원은 이미 성능이 정해져있고 그걸 가지고 최대한의 성능을 뽑아내야함

자원 분배 기준

    -형평성

    -최대한 성능을 낼수있도록 효율성

 

cpu 시간을 쪼개씀

메모리  공간을 쪼개씀

 

컴퓨터 시스템을 사용하기 쉽게 만들어줌(사용자 관점)

현대 컴퓨터 한대의 컴퓨터에서 여러개의 프로그램이 동시에 돌아갈 수 있게 지원함

-> 하나의 컴퓨터에서 여러 프로그램이 돌아가도 끊김없게 돌아가는 느낌이 들게하는 관리를 함

 

운영체제의 분류

1. 동시 작업 가능 여부

단일 작업(single tasking)

- 한번에 하나의 작업만 처리

 ex) MS-DOS 프롬프트 상에서는 한 명령의 수행을 끝내기 전에 닿른 명령을 수행시킬 수 없음

다중 작업(multi tasking)

- 동시에 두개 이상의 작업처리

ex) UNIX, MS Window 등에서는 한 명령의 수행이 끝나기 전에 다른 명ㅎ령이나 프로그램 수행가능

내생각 -> 애초에 동시성 병렬성 논하는게 다중작업 운영체제에서 논할수있는것

2. 사용자의 수

단일 사용자

ex) MS-DOS,MS Windows

다중 사용자 -> 서버에 접근해서 사용하는 방법

ex) UNIX, NT server

처리방식

일괄 처리(batch processing)

- 작업 요청을 일정량 모아서 한꺼번에 처리

- 작업이 완전히 종료될때까지 기다려야함

- 현대의 운영체제에서는 잘 사용하지 않음 (역사속의 시스템) 천공카드임 이게

 

시분할(time sharing)

- 여러 작업을 수행할때 컴퓨터 처리 능력을 일정한 시간 다위로 분할하여 사용 

- 일괄 처리 시스템에 비해 짧은 응답 시간을 가짐

- 프로세스를 작은 시간단위로 쪼개서 여기저기 실행되는 프로세스에다가 주는데 그러면 interactive(바로바로 결과가 나오는) 한 경험을 할수있음  

- 짧은 응답속도를 가짐

- 응답속도의 데드라인이 있는건 아님 시간 엿가락처럼 막 달라짐 ex) 사람들이 여러명이 동시에 접속하거나 할때

- 현대의 운영체제가 이방식을 사용함

 

실시간(RealTime OS)

- 정해진 시간 안에 어떠한 일이 반드시 종료됨이 보장되어야하는 실시간 시스템을 위한 OS

- 끝내야하는 명확한 데드라인이 있다!!!

ex) 원자로/ 공장제어 , 미사일 제어, 반도체 장비

- 특수한 목적에의해 사용된다.

 

실시간 시스템의 개념확장

- hard 기존처럼 죽어도 지켜야하는것

ex)원자로,반도체 

- soft 데드라인이 있기는 하지만 엄청난 문제를 초래하지 않는것

ex) 동영상 재생 24프레임을 가져와서 보여주는것

 

요즘의 운영체제 

-> 다중사용자, 멀티태스킹,시분할 방식으로 운영된다.

 


용어 정리

Multitasking: 일반적인 용어 -> cpu에서는 매순간 한가지 작업만 하고있지만 멀리서 봤을때는 동시에 진행되고 있다고 보이는 상태를 뜻한다.

Multiprogramming: 멀티태스킹 이랑 동치로 봐도 되지만 정확히 말하자면 메모리에 동시에 여러개의 프로그램이 올라가는것을 뜻한다. 멀티태스킹의 메모리를 강조한것

Time sharing: 시분할  멀티태스킹의 cpu를 강조한 것

Multiprocess: 이것도 마찬가지로 멀티태스킹 비스무리한것이다.

 

Multiprocessor: 하나의 컴퓨터의 여러개의 cpu가 붙어있는것 멀티코어 이야기함(듀얼코어 이런것)

병렬성 작업 가능 하드웨어 적으로 다른것을 말함.

 


운영체제의 예

unix 는 최초 대형컴퓨터를 위해 설계됨

-> 멀티태스킹,멀티유저를 초점으로 만들어짐

유닉스 이전은 어셈블리어로 만듬 -> 복잡해서 인간이 못다룸

유닉스 만들기위해 만든 언어가 c언어이다. -> 고급언어이지만 기계어와 매우 가까움 -> 기계를 직접 다루는 운영체제에 적합함

이식하기가 쉽다 -> 전혀다른 기계어 집합을 갖고있는 컴퓨터에 이식하기 쉽다 (c언어라서)

c언어는 기계어랑은 독립적이라 컴파일만하면 이식가능

커널의 크기를 작게 만들어놓았다.

안드로이드도 운영체제 커널은 리눅스 커널이다!!

ms window 는 퍼스널 컴퓨터를 위해 설계됨

-> 개인용 컴퓨터라 출발은 단일 사용자 싱글 태스킹을 초점에 두고 시작됨

GUI기반으로 사용하게됨

초창기 windows는 불안정했는데 이제는 불안정성이 다소 해소