운영체제
정의
운영체제(OS, Operating System): 소프트웨어
사용자에게 인터페이스를 제공하고, 하드웨어 자원을 효율적 관리하는 소프트웨어
목적
컴퓨터 자원 관리와 자원 보호
최신 컴퓨터: CPU 등 성능 향상으로 여러 작업을 동시에 처리하는데 이때 응용 프로그램에게 컴퓨터 자원을 할당하고 회수
사용자가 하드디스크에 직접 접근해서 데이터 저장을 할 수 없다면 데이터를 덮어 씌워서 데이터를 손실하는 실수 방지 ex. 사용자(손님), 운영체제(웨이터), 하드웨어(레스토랑)
- 자원 관리: 응용프로그램들에게 자원 배분
- 자원 보호: 사용자와 하드웨어 사이에서 인터페이스 제공(조작, 결과 제공)
- 하드웨어 인터페이스 제공
- 소프트웨어 인터페이스 제공
종류
- MS Window, MS Mac
- android, mac ios
- unix (linux)
리눅스 종류
Redhat, Debian 계열로 나뉨
- Redhat : Redhat, CentOS, Oracle, Rocky, Fedora
- Debian : Ubuntu, Mint, Kali
구성
- 커널: 사용자가 커널에 명령 전달
- 시스템 콜: 인터페이스로 사용자에게 실행 결과 반환
커널
정의
OS의 핵심 구성 요소
사용자와 하드웨어 사이에 위치
목적
응용 프로그램과 하드웨어를 제어. 하드웨어에 자원에 직접 접근해서 자원을 프로그램에 전달하고 프로그램이 작동하도록 관리
시스템 콜(하드웨어 인터페이스)를 통해 커널은 하드웨어에 접근해서 작업 수행
- write(): 사용자 명령을 하드웨어에게 전달 write()
- read(): 사용자에게 실행 결과를 보여줌
프로세스, 메모리, 파일 시스템, 입출력, 프로세스 간 통신 관리
쉘
정의
사용자와 운영체제 간의 인터페이스
목적
사용자: 쉘을 통해 운영체제에게 명령 입력, 결과 확인하여 작업 수행
프로세스
실행 중인 프로그램 단위
운영체제: 프로그램(코드) 메모리에 가져옴 -> 프로세스 제어 블록 생성 -> 메모리 확보 -> 프로세스 큐에 삽입 -> CPU 전달 및 수행
쓰레드
여러 개의 프로세스를 모아서 CPU에 전달해서 한꺼번에 배치 작업(일괄 작업) 하는 단위
프로세스와 쓰레드 차이점
프로세스, 스레드가 동작하려면 메모리 동작이 필요하다. 커널이 메모리 상에 확보함
크기: 프로세스 > 스레드
- 프로세스: 약한 연결, 독립적으로 메모리 공간을 가지고 있음
- 스레드: 강한 연결, 프로세스 안에 존재. 메모리 공간을 공유 (다른 스레드에 이상이 있으면 영향 받음) 별도의 레지스터와 스택을 가지고 힙 영역은 공유
프로세서 아키텍처
컴퓨터의 중앙 처리 장치인 CPU의 내부 동작과 구조를 정의하는 명세서
종류
- x86: Intell이 개발해서 8086 마이크로아키텍처 기반. 개인 컴퓨터와 서버에서 주로 사용. Windows, Linux, MacOS 등 다양한 운영체제에서 지원
- ARM: 저전력 임베디드 시스템과 스마트폰에서 주로 사용. 에너지 효율성이 뛰어나고 다양한 크기와 형태로 제공. 서버와 클라우드 환경에서 사용
'Computer Science > Operating System' 카테고리의 다른 글
커널(Kurnel)이란? (0) | 2023.07.09 |
---|---|
운영체제 종류 - Unix와 Linux (0) | 2023.07.09 |
표준 입출력, 표준 에러 (0) | 2023.07.09 |
버전 표기법 : SW 라이브러리 버전 읽기 (0) | 2023.07.09 |