컴퓨터는 왜 컴퓨터일까?
→ 컴퓨터는 원래 미사일 탄도를 계산하기 위해 개발되었는데 왜 계산기가 아닌 컴퓨터일까?
- 프로그래밍이 가능한 기계 == 컴퓨터
일반 기계와 컴퓨터의 차이
- 성능을 높이거나 기능을 추가해야할 경우
- 일반 기계 → 기계를 새로 제작.
- 컴퓨터 → 프로그램 변경으로 해결!!
컴퓨터 종류
범용 컴퓨터
우리가 알고 있는 게임/웹서핑 등을 하는 일반 컴퓨터
임베디드 시스템
스마트 시계, 스마트 TV 등에 탑재되어 특정 작업만 수행하는 컴퓨터
- CPU 성능이 낮고 메모리 크기가 작으며 디스플레이 크기가 작다.
- 특정 작업만 수행
- 애플워치, 갤럭시워치에 적용된 watchOS, wearOS 가 임베디드 운영체제.
정보란?
- 컴퓨터는 데이터를 처리하고 결과를 출력하거나 저장한다.
- 컴퓨터가 데이터를 처리해 의미 있는 자료가 되는 결과물, “정보”
컴퓨터의 구성
하드웨어
- 소프트웨어에 정보를 받아 작업을 수행한다.
소프트웨어
- 하드웨어를 제어해 작업을 수행시키는 명령의 모음.
- 즉, 프로그램 !!
소프트웨어 종류
응용프로그램
- 게임이나 워드 등, 특정 작업을 위해 사용하는 프로그램.
시스템 소프트웨어
- 컴퓨터 하드웨어와 응용 프로그램을 관리하기 위한 소프트웨어.
- 운영체제, 유틸리티 등…
- 유틸리티: 바이러스 검사, 디스크 조각모음, 압축 프로그램과 같이 운영체제 작업을 보조하는 프로그램.
💡 운영체제란 ? 응용프로그램의 잘못된 동작으로 컴퓨터가 망가지는 것을 막기 위해 컴퓨터 전체를 관리하고 운영하는 소프트웨어.
운영체제
- 컴퓨터 관리를 위한 기본 규칙과 절차를 규정.
- 컴퓨터 내의 HW, SW 를 관리한다.
- 응용 프로그램은 운영체제에게 허락을 받은 후 HW 를 사용 가능.!
- 컴퓨터든 스마트폰이든 응용체제가 먼저 실행되어 하드웨어를 장악한 후, 다른 프로그램들이 실행된다.
특징
- 컴퓨터 자원 보호, 관리
- 사용자가 자원에 직접 접근하는 것을 막는다.
- 응용 프로그램과 사용자에게 모든 컴퓨터 자원을 숨긴다.
→ 대신 자원을 이용할 수 있는 여러 방법을 제공한다!
자원 이용 방법
- 인터페이스 사용.
- 사용자가 컴퓨터를 사용할 수 있게 해주고 결과를 알려주는 장치.
역할
- 컴퓨터에 있는 하드웨어(자원)을 조정하고 관리하기.
그래서 결국 운영체제가 뭔데???????
→ “컴퓨터 자원을 효율적으로 관리하는 소프트웨어”
운영체제는 하드웨어의 도움 없이는 작동하기 어려워, 하드웨어와 소프트웨어 특성을 모두 갖춘 형태로 운영된다. 이를 “펌웨어” 라고 부른다.
컴퓨터 구조와 운영체제
운영체제 구성
커널 | 운영체제 핵심 기능을 모아둔 것, 모든 컴퓨터 자원 관리. |
인터페이스 | 커널에 명령을 내리고 사용자에게 결과를 전달해줌 |
커널
- 모든 컴퓨터 자원은 커널을 통해서만 접근할 수 있다.
- 어떤 사용자도 응용 프로그램도 컴퓨터 자원에 “직접 접근”은 불가하다.
인터페이스
- 응용프로그램이 컴퓨터 자원(커널)을 이용하기 위해 운영체제가 제공하는 함수 형태의 인터페이스.
- UI → 사용자 인터페이스
- 디렉토리를 만들거나 파일을 복사하는 등의 작업을 할 때 이용.
- GUI → 그래픽 사용자 인터페이스
- 문자 기반 인터페이스에서 사용자 친화적으로 변한, 그래픽을 이용한 인터페이스.
- 요즘 컴퓨터가 이용함 !!
- 시리, 빅스비같은 음성인터페이스나, 스마트폰 사용을 위한 터치스크린 인터페이스도 있다…!!
운영체제의 (세부)역할
자원 관리 | 컴퓨터 자원을 프로그램에 알맞게 배분해 사용자의 원활한 작업을 돕는다. |
자원 보호 | 비정상적인 작업으로부터 컴퓨터 자원을 지킨다. |
하드웨어 인터페이스 제공 | 어떤 하드웨어든지 기본 인터페이스를 사용해서 지원함. |
사용자 인터페이스 제공 | 사용자가 운영체제를 편리하게 사용하도록 제공. |
예전엔 문자 기반이었지만 지금은 GUI 제공 등으로 편리! |
운영체제의 목표
- 효율성 : 효율적으로 자원 관리를 해야한다.
- 운영체제의 크기 최소화.
- 운영체제 사용 코드 최적화.
- 안정성 : 운영체제는 안정적이어야 한다.
- 사용자, 응용 프로그램의 안전 문제와 HW 보안 문제를 처리할 수 있어야 한다.
- 시스템 문제가 발생했을시 이전으로 복구가 가능해야 한다.
- 확장성 : 다양한 시스템 자원을 추가하거나 제거하기 편리해야 한다.
- 하드웨어 종류에 상관없이 꽂으면 바로 실행할 수 있어야 한다.
- 앞으로 개발될 하드웨어도 제약없이 사용할 수 있게 하드웨어 제작자의 편리성도 고려한다.
- 편리성 : 사용자가 편리하게 작업할 수 있는 환경을 만들자.
- 사용자에게 GUI 대신 텍스트만 사용하게 하면 효율성이 높아지지만, 사용자가 불편하다.
- 그래서 GUI 등을 사용하게 한다.
- 응용 프로그램의 효율성을 높이기 위해 메모리 100MB 이상 사용을 제한한다.
- 시스템 효율성이 높아지나, 사용자와 개발자를 불편하게 한다.
- 응용 프로그램과 사용자에게 다양한 편리성을 제공하되, 자원 낭비 요소를 막아야한다!
- 사용자에게 GUI 대신 텍스트만 사용하게 하면 효율성이 높아지지만, 사용자가 불편하다.
효율성 | 자원 관리 | 효율적으로 자원 관리를 해야한다. |
안정성 | 자원 보호 | 안정적으로 보안 문제를 처리하고 복구 결함 포용 기능을 수행해야 한다. |
확장성 | 하드웨어 인터페이스 제공 | 하드웨어 종류에 상관없이 꽂으면 바로 실행할 수 있는 플러그 앤드 플레이 기능을 제공해야 한다. |
편리성 | 사용자 인터페이스 제공 | 편리하게 이용하기 위해 사용자 인터페이스를 제공해야 한다. |
728x90
'개발공부 개발새발 > OS' 카테고리의 다른 글
OS ) 시스템콜, 코루틴, 그리고 이벤트 루프란? (0) | 2024.10.29 |
---|---|
OS ) CPU와 메모리 (0) | 2023.11.02 |
OS ) 컴퓨터의 기본 구성 (1) | 2023.10.23 |
OS ) 운영체제의 구성 (2) | 2023.10.23 |
OS ) 운영체제의 발전 (1) | 2023.10.22 |