728x90
반응형
SMALL

부팅(booting)

컴퓨터가 작동을 시작하는 과정

  • 메모리와 다른 구성 요소를 점검해서 올바르게 작동하는지 확인
  • 컴퓨터에 어떤 외부 장치가 연결되어 있는지 알아냄
  • 연결된 장치를 운영체제가 사용할 수 있도록 관련된 소프트웨어 구성 요소(드라이버) 로드

시스템 콜(syscall)

애플리케이션이 운영체제 특정 부분에 통제권을 넘겨주는 명령어를 실행하여 서비스를 요청하는 것.

고급 언어로 작성된 프로그램들은 직접 시스템 호출을 사용할 수 없기 때문에 고급 API를 통해 시스템 호출에 접근하게 하는 방법.

시스템 호출의 유형

  1. 프로세스 제어(process control)
  2. 파일 조작(file manipulation)
  3. 장치 관리(device management)
  4. 정보 유지(information maintenance)
  5. 통신(communication)

디바이스 드라이버

운영체제와 프린터 등과 같은 하드웨어 장치 간에 가교 역할을 하는 코드

특정 장치가 어떤 일을 하도록 하는지 알고 있다.

 

예시) 프린터

운영체제는 일반적인 요청을 하고 싶어한다.

예를 들어, 어떤 텍스트를 어떤 위치에 출력하고 이런 것.

하지만 프린터마다 지원하는 기능에 차이가 있다.

컬러, 흑백, 양면, 단면, 종이 크기, 정보를 종이에 옮기는 매커니즘 등.

드라이버는 운영체제의 일반적인 요청을 해당 프린터에 적합한 형태로 변환한다.

 

→ 범용 운영체제에는 많은 디바이스 드라이버가 있다.

부팅 시 현재 필요한 드라이버를 불러오는 작업도 이루어 진다.

디바이스 드라이버, 운영체제, 시스템 콜 인터페이스

 

그림에서 시스템 호출을 *커널을 모두 커버하고 있는데, 시스템 호출을 거치지 않고서는 커널에 접근이 불가능하다는 것을 뜻한다.

드라이버의 경우 커널에서 제공하는 드라이버도 있고 하드웨어에서 제공하는 드라이버도 있어 필수 요소가 아니다.

*커널 - 프로세스 관리, 메모리 관리, 저장장치 관리와 같은 운영체제의 핵심적인 기능을 모아 놓은 것.


다양한 디지털 장치와 운영체제

기술의 발달로 많은 장치의 처리 성능과 메모리 용량이 높아졌다.

디지털 카메라, 휴대폰 등의 기기들을 컴퓨터라고 불러도 이상하지 않다.

 

이러한 기술 발달 덕분에 장치들을 범용 컴퓨터와 비슷한 모습을 띠고 있다.

프로세서 + 메모리 + 주변 장치 등으로 되어 있고,

사용자 인터페이스와 네트워크 연결도 제공한다.

 

이런 추세는 범용 운영체제 사용을 가속화 시킨다.

전용 운영체제 개발보다는 리눅스에서 필요한 부분만 뽑아 쓰는 것이 더 쉽고 저렴하다.

728x90
반응형
LIST
728x90
반응형
SMALL

가상 운영체제에 앞서 가상 메모리 다시 짚어보기

메모리(RAM)에 필요한 것들만 가져다 놓고 곧 사용이 필요할 것 같은것들은 보조기억장치(하드디스크)에 어디있는지 주소만 대기 시킨다.

ex) 게임을 하던 도중 1번 던전을 해야해서 1번 던전에 대한 내용이 RAM에 있다. 이것을 깨면 2번 던전으로 넘어가게 될 것이다. 하지만 RAM에 굳이 2번 던전까지 가져다 놓을 필요없이 로딩하면서 2번 던전을 메모리로 불러온다. >> 틀린거 같으면 태클좀

운영체제의 발전

  1. 처리 역량
    1. 초장기 운영체제는 메모리도 작고, 작업도 단순하여 스와핑이 제한적으로 이루어짐
    2. 요즘에는 정교하고 더 복잡한 환경에서 더 많은 장치를 다룬다.
  2. 개발의 어려움과 코드 수
    1. 1975년 유닉스 운영체제 6판은 C와 어셈블리 언어 9000행으로 이루어짐
    2. 오늘날 리눅스는 1천만행이 훨씬 넘고, 수십 수년간 수천 명이 작업한 결과물
  3. 리눅스 운영체제의 기원
    1. 리누스 토르발스가 1991년 유닉스의 자신만의 버전을 새로 만들며 10000행 정도의 초안을 인터넷에 올리고 다른 사람들에게 사용하고 피드백을 요청하며 다수가 사용 시작

가상운영 체제

  1. 하드워에 개발 시 다른 운영체제 사용 가능
    1. 디크스에 여러 운영체제를 저장해 두고 컴퓨터를 컬때마다 어느 것을 실행할 지 결정할 수 있다. 이것을 ‘멀티 부트’라고 하며 애플은 ‘부트 캠프’ 라고도 한다.

  1. 그림과 같이 다른 운영체제 위에서 다른 운영체제를 실행하여 그 운영체제로 앱을 실행시킬 수 있다.
    1. 가상 운영체제 프로그램(VM웨어, 버주얼박스, 젠 등)은 게스트 운영체제로 실행할 수 있게 도와준다.
    2. 호스트는 게스트가 생성하는 요청 중 파일 시스템 접근이나 네트워크 접근 등 운영체제 권한이 필요한 요청을 가로챈다.
    3. 호스트는 작업을 수행한 다음 게스트로 되돌아간다.
    4. 호스트와 게스트가 둘다 같은 하드웨어에 맞게 컴파일되면 게스트 운영체제는 대개 하드웨어가 낼 수 있는 최고 속도로 실행되고, 거의 실체 컴퓨터상에서 직접 실행되듯 반응하는 것 처럼 느껴진다.
  2. 특이사항
    1. 그렇다면 하나의 윈도우를 구매해서 가상으로 여려대로 돌려도 될까?
    2. 돈 많은 사람은 멍청하지 않다 : 합법적으로 실행할 수 있는 가상 인스턴스 사본의 개수를 제한하고 있다.

가상 머신

  1. 진짜 컴퓨터든 모형 컴퓨터 같은 상상의 컴퓨터든, 컴퓨터인 것처럼 작동하는 프로그램을 가상 머신이라고 한다.
  2. 스프트웨어만 존재하지만 하드웨어인 것처럼 그 작동 방식을 모방한다.
  3. ex) 우리가 컴퓨터로 포켓몬스터 골드버전을 하면 TGB 애뮬레이터를 킨다. 우리는 컴퓨터안에 가짜 게임보이 게임기를 만들어 놓고 거기에다가 가짜 게임칩을 넣어서 플레이 하는 것이다.
    1. 더 나아가면 NOX도 있다. 컴퓨터에 가짜 휴대폰 깔아서 그 휴대폰에서 휴대폰 전용 앱을 구동시키는 것이다.
  4. 위 예시처럼 물리적인 장비가 필요없이 사용할 프로그램을 더 쉽고 유연하게 사용 가능하다.
  5. 클라우드 컴퓨팅은 가상 머신에 의존한다. 고객들이 사용하는 가상 머신은 그보다 더 적은 수의
  6. 물리적 컴퓨터의 지원을 받으며, 멀티코어 프로세서가 이런 종류의 작업에 적합하다.
  7. AWS는 최대 클라우드 컴퓨팅 제공 업체이다. AWS의 이익의 절반 이상이 여기서 나오며, 고객들의 작업량 변화에 맞게 서비스의 성능과 용량을 늘리거나 줄여 제공한다. (우리 프로젝트 비용이 AWS의 밥줄인 것이다.)

반대로 물리적인 컴퓨터가 아니기 때문에 기업입장에서는 필요한 만큼만 제공하여 불필요한 리소스를 낭비하지 않을 수 있고, 고객은 필요한 만큼의 서버나 저장공간만 빌리면 된다.

 


가상 머신과 가상 운영체제

출처 : https://dmsitter.tistory.com/70 : 가상 머신에 대한 사용 예시를 잘 설명해줌

결론 : 가상 머신은 물리적인 컴퓨터에서 소프트웨어로 구현된 가상의 컴퓨터이며, 가상 운영체제는 가상 머신 내에서 작동하는 가상 환경에서의 운영체제를 의미한다. 가상 머신은 가상 소프트웨어를 통해 호스트의 컴퓨터의 리소스를 가상화하고, 가상 운영체제는 가상 머신 내에서 실행되는 운영체제로써 가상 머신 내의 다른 소프트웨어와 리소스를 관리한다.

728x90
반응형
LIST
728x90
반응형
SMALL

운영체제

운영체제(Operating System, OS)는 컴퓨터 시스템의 핵심 소프트웨어로, 하드웨어와 소프트웨어 리소스를 관리하고, 사용자와 컴퓨터 사이의 인터페이스 역할을 수행한다. 이는 컴퓨터가 작동하고 사용자가 프로그램을 실행하는 데 필수적인 요소이다.

애플리케이션

운영체제(Operating System, OS) 위에서 실행되는 프로그램인 '애플리케이션'은 컴퓨터나 모바일 기기에서 사용자가 원하는 작업을 수행하기 위한 소프트웨어이다.


1. 운영체제의 시작

  • 1950년대 초에는 애플리케이션과 운영체제 간에 구별이 없었다. 컴퓨터는 한 번에 한 개의 프로그램만 실행할 수 있을 정도로 성능이 제한적이었고, 그 프로그램이 컴퓨터 전체를 점유했다.
  • 실제로 프로그래머들은 자신이 짠 프로그램 한 개를 실행하기 위해 시간대별로 컴퓨터 사용 예약을 해야만 했다. 컴퓨터가 더 복잡해짐에 따라, 비전문가가 프로그램을 실행하는 일이 너무 비효율적이라고 느껴져서 전문 운영자에게 맡겨졌고, 운영자는 프로그램을 컴퓨터에 입력하고 결과를 배부했다. 운영체제는 운영자가 이런 작업을 자동화 할 수 있도록 돕는 프로그램에서 시작되었다.
  • 운영체제는 자신이 제어하는 하드웨어가 발전됨에 따라 꾸준히 더 정교해졌다. 하드웨어 성능이 더 좋아지고 복잡해지면서, 운영체제가 하드웨어를 제어하는 데 더 많은 자원을 투입할 수 있게 되었다.

2. 운영체제의 작동 방식

이미지 출처 : https://velog.io/@underlier12/OS-01-운영체제의-역할

운영체제는 컴퓨터의 자원을 제어하고 할당한다.

  1. 프로세서를 관리하면서 현재 사용 중인 프로그램을 스케줄링하고 프로그램 간의 좐계를 조정한다.
    • 바이러스 검사나등 백그라운드 프로세스도 포함된다.
    • 일반적인 운영체제에서는 프로세스 수백 개가 동시에 실행된다.
    • 일부는 사용자가 실행한 프로그램이지만, 대부분은 일반 사용자에게는 보이지 않는 시스템 작업이다.
    • 확인을 하고 싶으면 맥OS는 활성 상태 보기, 윈도우에서는 작업관리자에 나온다.
  2. 운영체제는 주기억 장치를 관리한다.
    • 우선 메모리에 프로그램을 로드해서 프로그램이 명령어 실행을 시작 할 수 있게 해준다.
    • 동시에 벌어지는 모든일을 감당하기에 메모리 용량이 충분하지 않다면 프로그램을 일시적으로 디스크로 복사했다가, 다시 메모리에 공간이 생기면 도로 옮겨준다.
  3. 운영체제는 보조 기억 장치에 저장된 정보를 관리한다.
    • 파일 시스템이라는 운영체제의 주요 구성 요서가 우리가 컴퓨터를 사용 할 때 보는 폴더와 파일의 익숙한 계층구조를 제공한다.
  4. 운영체제는 컴퓨터에 연결된 장치들의 활동을 관리하고 조정한다.
    • 키보드와 마우스를 통해 들어오는 입력이 그 정보를 기다리고 있는 프로그램으로 전달되도록 도와준다.
    • 또한 유무선 네트워크 연결로 주고받는 통신을 처리한다. 프린터로 데이터를 보내고 스캐너에서 데이터를 가져오기도한다.

 

[CS]컴퓨터를 작동하게 만드는 운영체제

 

[CS]컴퓨터를 작동하게 만드는 운영체제

컴퓨터 시스템의 하드웨어, 소프트웨어적인 자원들을 효율적으로 운영 및 관리함으로써 사용자가 컴퓨터를 편리하고, 효과적으로 사용할 수 있도록 하는 시스템 소프트웨어입니다.컴퓨터 하드

velog.io

 

728x90
반응형
LIST

+ Recent posts