1일 1로그 100일완성 IT지식 log(38~39)

Jobmania·2022년 8월 12일
0

1일 1로그 IT지식

목록 보기
13/16

어플리케이션(Application)

운영체제를 플랫폼으로 삼아 작업을 수행하는 프로그램이나 소프트웨어를 총칭

  • 애플리케이션은 운영체제를 플랫폼으로 삼아 작업을 수행하는 온갖 종류의 프로그램이나 소프트웨어 시스템을 총칭하는 용어다.
    애플리케이션은 클수도, 작을수도 있으며 하나의 과제를 집중할수도 폭넓은 기능을 처리할 수도 있다. 판매될 수도 있고 무료로 배포될 수도 있다 소유권이 강하게 보호되거나 자유롭게 사용할수 있거나 하는등 사용에 아무런 제한이 없다.

예시) MS Word
워드 같은 애플리케이션은 파일 시스템 탐색용 프로그램보다 훨씬 더 규모가 크다.

  1. 사용자가 파일을 열고 내용을 읽고 파일 시스템에 문서를 저장할 수
    있도록 파일 시스템 코드 포함.
  2. 텍스트가 바뀜에 따라 디스플레이를 계속해서 갱신하기 위한 알고리즘
  3. 정보를 화면에 표시하고 글자 크기 글꼴 색상 레이아웃 등을 조정하는 방법을 제공하는 정교한 사용자 인터페이스를 지원

브라우저(Browser)

규모가 크고 무료, 간혹 오픈소스로 개발됨
어떤 측면에서는 다른 애플리케이션에 비교해 복잡함: 비동기적(asyncronous) 이벤트 처리

  • 비동기적 이벤트: 예측할 수 없는 시점에 일정한 순서를 따르지 않고 발생하는 이벤트

자원을 관리하고, 동시에 일어나는 활동을 제어・조정 하고, 정보 저장/가공 및 애플리케이션 프로그램이 실행될 수 있는 플랫폼을 제공(브라우저는 운영체제와 비슷함)

그래서 하드웨어를 제어하는 운영체제와 독립적으로 브라우저 운영체제를 사용해보는 것이 가능해 보였으며, 구글은 크롬OS라는 운영체제를 제공함!

+ 크롬북

크롬북은 운영체제로 윈도우나 다른 리눅스 배포판을 올리지 않고, 독자적으로 개발한 인터넷 특화 운영체제인 크롬 OS를 사용한다는 점이 다르다. 크롬 OS는 리눅스 커널에 크롬 웹 브라우저를 올린 것이다.

장점:

  • 운영체제가 크롬 OS이기에 사실상 OS가 무료나 다름없기 때문에 그만큼 가격이 싸다.
  • 빠르다. 일단 대부분의 기종이 SSD를 사용하며 구글 크롬 OS 운영체제가 가벼운 리눅스 위에 딸랑 크롬 한개밖에 없는 것이니 빠를 수 밖에 없다.

교육용으로 많이 사용함.


소프트웨어 계층 구조


커널 : 운영체제의 핵심 기능을 암시하기위해 흔히 커널 이라고 함. 커널에서 사용자의 명령에 따른 작업(파일 업로드, 가져오기 등)이 이루어짐

운영체제의 관리 계층 구조 용어 설명
운영체제의 1 계층, 프로세서 관리에서는 동기화 및 프로세서 스케줄링을 담당합니다. 스케줄링이란 처리해야 할 일들의 순서를 정하는 일입니다. 중앙처리장치를 사용할 수 있도록 순서를 정합니다.

운영체제의 2 계층, 기억장치 관리에서는 메모리의 할당 및 회수 기능을 담당합니다. 메모리 할당이란 프로그램이 사용할 메모리 공간을 확보하는 것을 말합니다. 메모리 크기는 한정되어 있기 때문에, 이를 관리하는 역할을 합니다. 

운영체제의 3 계층, 프로세스 관리에서는 프로세스의 생성, 제거, 메시지 전달, 시작과 정지 등의 작업을 담당합니다. 실행 중인 프로그램의 프로세스를 생성하여, 각 프로세스별로 관리하고 프로그램을 동시에 작업할 수 있도록 해주며, 프로그램 종료 시 프로세스를 제거합니다.  

운영체제의 4 계층, 주변장치 관리에서는 주변장치의 상태 파악과 입출력 장치의 스케줄링을 담당합니다. 컴퓨터 주변 기기인 키보드, 프린트, 마우스 등 주변 장치와 입출력 장치의 스케줄링을 관리하는 역할을 담당합니다. 

운영체제의 5 계층, 파일 관리에서는 파일의 생성과 소멸, 파일의 열기와 닫기, 파일의 유저 및 관리를 담당합니다. 


라이브러리

운영체제 다음 계층으로 라이브러리 집합. 프로그래머 개개인이 기능을 새로 만들어 낼 필요가 없도록 일반적으로 유용한 서비스를 제공한다.
API를 바탕으로 대상 환경(플랫폼)에서 바로 실행될 수 있도록 모듈화된 프로그램 모음이다. 라이브러리는 혼자서 동작하는 완전한 프로그램이 아닌, 특정한 부분 기능만을 수행하도록 제작된, 컴파일되어 기계어의 형태로 (또는 대상 플랫폼에 따라서는 바이트코드로) 존재하는 프로그램이다.

기본적인 기능을 처리하는 라이브러리부터 복잡한 기능을 처리하는 라이브러리까지, GUI(그래픽 사용자 인터페이스)구성요소는 많은 코드를 필요로 한다. GUI구성요소가 라이브러리에 있으면 누구나 사용할 수 있어서 균일한 디자인을 보장하는 데 도움이 된다. 그래서 대부분의 윈도우 애플리케이션이나 기본 그래픽 구성 요소가 비슷해 보이는 것이다.


커널, 라이브러리, 애플리케이션 간의 구분이 명확하지가 않다. 소프트웨어 구성요소를 만들고 연결하는 방법에는 경우의 수가 많기 때문이다. 운영체제와 애플리케이션 사이의 경계는 뚜렷하게 정의되어 있지 않다.

그 경계선은 어떤 애플리케이션이 다른 애플리케이션의 동작에 간섭하지 않도록 하는 데 필요한 것은 무엇이든 운영체제의 역할에 속한다는 것이다.
다른 애플리케이션을 제어하는 일 자체가 운영체제의 범주에 들어간다고 정의를 해놓았다.

출처:
https://velog.io/@nanaheui000/%EC%97%AC%EB%9F%AC-%EC%9E%91%EC%97%85%EC%9D%84-%EC%88%98%ED%96%89%ED%95%98%EB%8A%94-%EC%95%A0%ED%94%8C%EB%A6%AC%EC%BC%80%EC%9D%B4%EC%85%98
출처: https://overcome-the-limits.tistory.com/94
출처 : https://velog.io/@syk0323/cs-%EC%97%AC%EB%9F%AC%EC%9E%91%EC%97%85%EC%9D%84-%EC%88%98%ED%96%89%ED%95%98%EB%8A%94-%EC%95%A0%ED%94%8C%EB%A6%AC%EC%BC%80%EC%9D%B4%EC%85%98

profile
HelloWorld에서 RealWorld로

0개의 댓글