운영체제 강의 1강

신승준·2022년 5월 20일
0

운영체제

목록 보기
2/12
post-custom-banner

1-1강, 강의 소개

운영체제란?

  • Operating System, OS : 컴퓨터 하드웨어 바로 위에 설치되어, 사용자와 다른 모든 소프트웨어 혹은 하드웨어를 연결하는 소프트웨어 계층이다. 사용자 입장에서는 하드웨어 자체를 다루기 쉽지 않으므로, 하드웨어 위에 기본적으로 운영체제를 탑재하여 전원을 켰을 때 곧바로 하드웨어를 다뤄 여러 소프트웨어를 실행시킬 수 있게 하는 것이다.
  • 좁은 범위의 운영체제 : 좁은 범위에서 운영체제는 커널만을 얘기할 수 있다. 부팅 이후로 메모리에 항상 상주하는 부분을 커널이라고 한다. 운영체제의 핵심 부분이다.
  • 넓은 범위의 운영체제 : 넓은 범위에서 운영체제는, 커널 뿐만 아니라 추가로 필요한 각종 주변 시스템 유틸리티(메모리에 상주하지 않는 별도의 프로그램들) 포함한 개념이다.
  • 전공자 입장에서 운영체제를 얘기하게 되면 커널 부분이라고 할 수 있다.

운영체제의 목적

  • 컴퓨터 시스템을 편리하게 사용할 수 있는 환경을 제공해준다.

    • 운영체제는 동시 사용자 혹은 프로그램들이, 각각 독자적 컴퓨터에서 수행되는 것 같은 환경을 제공한다.
      • 즉 사용자는 자신의 프로그램만 돌아가고 있는 듯한 느낌을 들게 할 수 있다.
    • 하드웨어를 직접 다루는 복잡한 부분을 운영체제가 대행한다.
  • 컴퓨터 시스템의 자원을 효율적으로 관리한다.

    • CPU, 메모리, 각종 I/O 장치, HDD, 프로세스, 파일, 메세지 등을 컴퓨터 시스템의 자원이라고 말할 수 있다. 운영체제는 이러한 프로세서, 기억장치, 입출력 장치 등을 효율적으로 관리한다.
    • 여기서 말하는 효율을 다시 한 번 생각해보면, 실행 중인 프로그램들에게 메모리 공간을 얼마나 적절히 분배시키느냐, CPU를 어떤 시간 간격으로 실행 중인 프로그램들에게 할당할 것인가를 생각해보는 것이다. 실제로 CPU 능력과 메모리 공간은 정해져있기 때문이다. 또한 어떤 프로그램에게 먼저 할당을 시키는지 순서도 생각해야 한다.
    • 형평성도 생각을 해야 한다. 너무 어떤 한 프로그램이 차별 받으면 안된다.
    • 즉 운영체제는 컴퓨터 시스템의 자원을 관리하는 데에 있어 효율성과 형평성을 고려해야 한다.
  • 사용자와 운영체제 자신을 보호하는 역할도 담당한다.




1-2강, Introduction to Operating Systems

운영체제 분류

  • 동시 작업이 가능한지에 따른 운영 체제의 분류

    • 단일 작업(single tasking)
      한 번에 하나의 작업만 처리한다. 요즘에는 거의 보기 힘들다.
      ex. MS-DOS, 프롬프트 상에서는 한 명령의 수행을 끝내기 전에는 다른 명령을 수행시킬 수 없다.

    • 다중 작업(multi tasking)
      동시에 2개 이상의 작업을 처리한다. 현대의 운영체제라고 보면 된다.
      ex. UNIX, MS Windows, 한 명령의 수행이 끝나기 전에도 다른 명령을 수행할 수 있다.

  • 사용자의 수에 따른 운영 체제의 분류

    • 단일 사용자(single user)
      혼자만 로그인 등을 할 수 있는 경우라고 할 수 있다.

    • 다중 사용자(multi user)
      여러 사람이 접속할 수 있는 경우라고 할 수 있다.

  • 처리 방식에 따른 운영 체제의 분류

    • 일괄 처리(batch processing)
      작업을 일정량 모아서 한번에 처리하는 방식이다.
      ex. 키보드로 타이핑을 해도 바로바로 볼 수 있는 것이 아니라 일정량 모인 다음에 화면에서 볼 수 있다. 혹은 동사무소 사람이 민원을 여러 개 받고, 30분 정도 뒤에 한번에 처리하는 경우.

    • 시분할(time sharing)
      현대 컴퓨터의 운영체제가 사용하는 처리 방식이다.(운영체제에서 살펴볼 처리 방식이다) 시간 단위로 나누어, 번갈아가며 서비스를 제공한다. 바로바로 반응할 수 있기 때문에(사람이 느끼기에) interactive하다고 할 수 있다.
      일괄 처리 시스템에 비해 짧은 응답 시간을 가진다.
      ex. 키보드로 타이핑을 하면 바로바로 볼 수 있다.

    • 실시간(realtime OS)
      데드라인을 지켜야 하는 등, 정확한 시간에 맞춰 작동해야하는 곳에 사용된다.
      정해진 시간 안에 어떠한 일이 반드시 종료됨이 보장되어야 하는 실시간 시스템을 위한 OS이다.
      ex. 원자로/공장 제어, 미사일 제어, 반도체 장비, 로보트 제어, 초당 24 프레임을 지켜야 하는 영화 상영(지키지 못하면 끊겨가면서 보여질 수 있다), 네비게이션(지금 우회전해야 되는데, 데드라인을 못 지켜 5초 뒤에 우회전하라고 나타나면 안되는 경우) 등

  • 결론은, 우리의 운영체제는 다중 작업, 다중 사용자, 시분할을 사용하고 있다.

몇 가지 용어

  • Multitasking : 하나의 명령이 끝나기 전에 다른 명령이 실행될 수 있다.
  • Multiprogramming : 여러 프로그램이 메모리에 올라가 있음을 말하는 것으로, 메모리를 강조한 것이다.
  • Time sharing : CPU의 시간을 분할하여 나누어 쓴다는 의미로, CPU를 좀 더 강조한 것이다.
  • Multiprocess : 실행 중인 프로그램이 여러 개이다.

결국 운영체제에서 4가지는 거의 유사한 의미이다.

  • Multiprocessor : 하나의 컴퓨터에 여러 CPU가 있음을 의미한다.

즉 위 4가지 용어가 CPU가 1개 있다고 생각한다면, 멀티 프로세서는 CPU가 여러 개 있다는 의미로, 하드웨어적으로 다름을 의미한다.

운영 체제의 예

  • 유닉스(UNIX) 계열

    • 초기엔 대형 컴퓨터를 위해 만들어진 운영체제이다.
    • 어셈블리로 만들다보니 너무 어려워서, 유닉스 운영체제를 만들기 위해 어셈블리보다 고급 언어인 C언어를 만들게 되었다.
    • 대부분의 컴퓨터에서 돌릴 수 있기에 이식성이 높다.
    • 소스 코드가 공개되어 있다.
    • ex. System V, Solaris, Linux, 안드로이드 커널(Linux)
  • DOS(Disk Operating System)

    • MS사에서 개발
    • 단일 사용자용 운영체제, 메모리 관리 능력의 한계(주 기억 장치: 640KB)
  • 윈도우(Window) 계열

    • 초기엔 개인용 컴퓨터인 PC를 위해 만들어진 운영체제이다.
    • MS사의 다중 작업용 GUI 기반 운영 체제이다.
    • 풍부한 여러 소프트웨어를 지원한다.

운영체제 과목의 수강 태도

  • OS 개발자 관점에서 수강
  • 운영체제 또한 사람이 프로그래밍하는 것이다.
  • 본인을 윈도우나 Linux라고 생각
profile
메타몽 닮음 :) email: alohajune22@gmail.com
post-custom-banner

0개의 댓글