티스토리 뷰

소프트웨어의 두 가지 주요한 유형: 운영체제, 어플리케이션  -> 운영체제 위에서 어플리케이션이 작동한다. 

*어플리케이션 = 응용 소프트웨어 =  응용 프로그램 으로 이해하시면 될 거 같습니다.

어플리케이션

응용 소프트웨어(영어: application software) 또는 애플리케이션은 운영 체제에서 실행되는 모든 소프트웨어를 뜻한다. 따라서, 워드프로세서, 스프레드시트, 웹브라우저들뿐만 아니라 컴파일러나 링커 등도 응용 소프트웨어에 속한다. 또는 좁은 의미에서는 OS 위에서 사용자가 직접 사용하게되는 소프트웨어들을 뜻한다.
  • 프로그램(응용 프로그램)을 일컫는 전문 용어가 애플리케이션이다.
  • 어플리케이션은 어느 정도 자립적이고 단일한 작업을 처리하는 데 초점이 맞춰진 프로그램을 뜻하는 표준 용어이다.
  • 애플리케이션을 app이라고 축약하여 부른다. 
  • 브라우저는 대표적인 앱이지만 운영체제와 비슷한 면도 가지고 있다. 

 

운영체제(operating system) - 컴퓨터 하드웨어를 관리하고 다른 프로그램을 실행할 수 있게 하는 소프트웨어의 기초 구조물 => 컴퓨터 하드웨어 바로 위에 설치되어 사용 및 다른 모든 소프트웨어를 연결하는 소프트웨어 계층으로
써 컴퓨터 메모리를 효율적으로 관리하는 역할을 한다.

 

운영체제 역사

 

1950년대 초에는 애플리케이션과 운영체제 간에 구별이 없었다. 컴퓨터는 한번에 한 개의 프로그램만 실행할 수 있을 정도의 성능 제한-> 하나의 프로그램이 컴퓨터 전체를 점유(성능이 안좋아서)

실질적인 작업을 위해 쓰인 최초의 운영 체제는 1956년에 제너럴 모터스의 연구 부서가[1] IBM 704를 위해 개발한 GM-NAA I/O로 간주된다.

1950년대 후반과 1960년대 초반에 처음으로 널리 사용된 운영체제가 등장함 -> 보통 하드웨어를 만드는 회사가 이를 같이 제공했고 어셈블리 언어로 작성되어 하드웨어와 강하게 결부됨 

 

1969년 벨 연구소에서 일하던 켄 톰프슨과 데니스 리치가 유닉스 운영체제를 만들었다. -> 마이크로소프트 제품(운영체제- 윈도우)을 제외하고 오늘날 대부분의 운영체제는 유닉스에서 파생되었거나, 유닉스와 호환되지만 독자적으로 개발된 리눅스(리누즈 토르발스가 개발)에서 파생된 것이다.

  • 예를 들어, 아이폰과 아이패드는 iOS를 실행하는데, iOS는 맥OS에서 파생된 운영체제이고, 맥OS의 핵심 부분은 유닉스의 변종이다. 안드로이드 폰은 리눅스를 실행한다. 

운영체제의 기능과 역할

최신 컴퓨터의 구성 요소를 효과적으로 사용하려면 다수의 프로그램을 동시에 실행할 수 있어야 한다. -> 이런 일들은 프로그램을 이용해 제어하는 수밖에 없는데, 해당 역할을 하는 프로그램이 운영체제이다. 

 

일반적인 운영체제에서는 프로세스 수백 개가 동시에 실행된다. -> 확인하고 싶다면 맥OS에서는 활성 상태 보기(Activity Monitor), 윈도우에서는 작업 관리자(Task Manager) 를 통해 확인할 수 있다.  

 

   1. 프로세서를 관리하면서 현재 사용중인 프로그램을 스케줄링하고 프로그램 간의 관계를 조정한다.

  • 특정 프로그램이 자원을 독차지하는 것을 막아 준다. 골고루 배분

   2. 주기억 장치를 관리한다. 

  • 메모리에 프로그램을 로드해서 프로그램이 명령어 실행을 시작할 수 있게 해줌
  • 별개의 프로그램이 서로 간섭하는 것을 막아준다.
  • 동시에 벌어지는 일을 감당하기에 메모리 용량이 충분하지 않다면 프로그램을 일시적으로 디스크로 복사했다가 다시 메모리에 공간이 생기면 도로 올려준다. (이러한 처리를 스와핑swapping이라고 함)
스와핑(swapping)
-메모리를 효과적으로 사용하는 적절한 공학 기법 중 하나
-프로그램의 일부만 메모리에 가져오고 비활성화 상태일 때는 꺼내서 디스크로 복사해두는 것

스와핑과 비슷한 맥락에서 가상 메모리를 이해하면 된다. 
가상 메모리(virtual memory)는 메모리가 실제 메모리보다 많아 보이게 하는 기술로, 어떤 프로세스가 실행될 때 메모리에 해당 프로세스 전체가 올라가지 않더라도 실행이 가능하다는 점에 착안하여 고안됨

애플리케이션이 실행될 때, 실행에 필요한 일부분만 메모리에 올라가며 애플리케이션의 나머지는 디스크에 남게 된다. 즉, 디스크가 RAM의 보조 기억장치처럼 작동하는 것!
-> 결국 빠르고 작은 기억장치(RAM)을 크고 느린 기억장치(디스크)와 병합하여, 하나의 크고 빠른 기억장치(가상 메모리)처럼 동작하게 하는 것

   3. 보조기억 장치에 저장된 정보를 관리한다. 

  • 파일 시스템(file system)이라는 운영체제의 주요 구성 요소가 우리가 컴퓨터를 사용할 때 보는 폴더와 파일의 익숙한 계층 구조를 제공한다.

   4. 컴퓨터에 연결된 장치들의 활동을 관리하고 조정한다. 

  • 키보드와 마우스를 통해 들어오는 입력이 그 정보를 기다리고 있는 프로그램으로 전달되도록 한다. 
  • 유무선 네트워크 연결로 주고받는 통신 처리 
  • 프린터로 데이터를 보내고 스캐너에서 데이터를 가져오기도 함

 

 

댓글