운영체제의 기능
1. 자원 관리 기능
2. 시스템 보호
3. 네트워크 (통신 기능)
1. 자원 관리 기능
*크게 4가지로 나뉨. 아래에서 세분화해서 보자
<메모리 관리>
■ 메인 메모리 관리 : 프로세서가 직접 주소로 지정할 수 있는 유일한 메모리
*CPU가 명령어를 수행하기 위해서는 명령어가 메인 메모리에 있어야 한다.
*프로그램이 절대주소로 매핑이 되어야 한다. 메인 메모리 주소로!
*RAM이라고 생각하면 된다.
■ 메모리 관리의 기능
메모리의 어느 부분을 사용하고, 누가 사용하는 지 점검
메모리에 저장할 프로세스 결정
메모리를 할당하고 회수하는 방법 결정
■ 보조기억장치 관리 : 메인 메모리는 공간이 제한되어 데이터와 프로그램 을 계속 저장할 수 없어 보조기억장치 이용
■ 보조기억장치 관리의 기능
빈 여유 공간 관리
새로운 파일 작성 시 저장 장소 할당
메모리 접근 요청 스케줄링
*CPU는 보조기억이랑은 통신하지 않는다. 한마디로 CPU랑 HDD는 직접적으로 데이터 주고 받지 않음. 대신 CPU와 HDD 사이에 메인메모리RAM이 있음. CPU - RAM - HDD로 연결되어있고, 데이타가 실행될려면 주기억장치(RAM)로 들어가야한다. 즉, RAM이랑 HDD가 통신하는데 있어, 그러한 스케줄링을 관리한다는 말.
파일 생성하고 삭제
<프로세스 관리>
■ 프로세스 (*작업이라고 생각하자)
하나의 프로세스는 프로세서, 메모리, 파일, 입출력 장치와 같은 자원으로 구성
자원은 프로세스 생성할 때 제공하거나 실행 중에 도 할당 가능
■ 시스템
프로세스의 집합
시스템 코드 수행하는 운영체제 프로세스와 사용자 코드 수행하는 사용자 프로세스로 구분
모든 프로세스는 프로세서 분할 사용하여 병행 수행 가능
■ 프로세스 관리를 위한 운영체제의 기능
프로세스와 스레드 스케줄링
*스레드 : 프로세스보다 작은 작업 (하나의 프로세스 안에 스레드가 있다.)
사용자 프로세스와 시스템 프로세스 생성, 제거
프로세스 중지, 재수행
프로세스 동기화 방법 제공
프로세스 통신 방법 제공
교착 상태(Deadlock)를 방지하는 방법 제공
*교착 상태 : 프로세스끼리 서로 빼고박지도 못하고 교착되는 상태
<입출력 관리>
운영체제는 특수 프로그램인 장치 드라이브를 사용 하여 입출력장치와 상호작용
장치 드라이버는 특정 하드웨어장치와 통신할 수 있는 인터페이스를 제공하므로 특정 하드웨어에 종속된 프로그램
■ 주변장치(입출력장치) 관리를 위한 운영체제의 기능
임시 저장buffer-caching 시스템 기능 제공
일반 장치용 드라이버 인터페이스 제공
특정 장치 드라이버 제공
*프린터를 연결만 한다고 보자. 보통은 프린터 드라이버를 설치한다. 그러나 이러한 드라이버를 설치하지 않아도 기본적으로 한컴에서 '출력'을 하면 프린터 인쇄는 할 수 있다. (프린터의 세세한 기능까지는 건들진 못하지만, 기본적인건 가능하다!)
<파일 관리>
입출력 파일의 위치, 저장, 검색 관리 의미
컴퓨터 시스템은 물리적으로 다양한 형태로 파일 저장 가능
운영체제는 데이터의 효율적 사용을 위해 단일화된 저장 형태 제공
운영체제는 파일의 용이한 사용을 위해 보통 디렉 터리로 구성, 다수의 사용자가 여기에 접근하려고 할 때는 이 접근을 제어
■ 파일 관리를 위한 운영체제의 기능
파일 생성, 삭제
디렉터리 생성, 삭제
보조기억장치의 파일 맵핑
안전한(비휘발성) 저장장치에 파일 저장 (RAM은 날아감. HDD보조기억장치는 안날아감. 즉 HDD에 저장해준다는 소리)
2. 시스템 보호
보호란? : 컴퓨터 자원에서 프로그램, 프로세스, 사용자의 접근 제어 방법
운영체제는 파일 사용 권한 부여, 데이터 암호화 등 서비스를 제공, 데이터와 시스템 보안
컴퓨터 시스템에서는 여러 프로세스 동시 실행 가능하므로 상호 보호해야 함
■ 윈도우7 시스템 보호 기능으로 개별 폴더 복구하는 방법
랜섬웨어나 바이러스로 인해 폴더에 영향을 주었을 때 파일을 복구 할 수 있는 방법이 있음
(※ 단, 이전에 윈도우 시스템 보호 기능을 켜 두셔야 하며 윈도우 시스템 보호 기능은 주기 적으로 파일을 백업하기 때문에 변형되기 전 파일로 복구가 가능한 것임)
윈도우 시스템 보호 기능이 활성화 되어 있어야 함
*그냥 일종의 백업과 같은 개념이다. 이런게 있다는 것만 알아두자.
3. 네트워크(통신 기능)
프로세서는 다양한 방법으로 구성된 네트워크 이용, 완전 접속과 부분 접속 방법으로 연결
연결된 프로세서가 통신을 할 때는 경로 설정, 접속 정책, 충돌, 보안 등 고려(운영체제가 관리)
운영체제 서비스
1. 부팅(Booting) 또는 부트스트래핑(Bootstrapping)
운영체제를 메인 메모리에 적재하는 과정
부트 로더는 부트스트랩 로더(Bootstrap loader) 줄인 말로 하드디스크와 같은 보조기억장치에 저장된 운영체제를 메인 메모리에 적재하는 ROM 에 고정시킨 소규모 프로그램
*우리가 따로 운영체제를 실행하는게 아닌, 컴퓨터를 키면 바로 OS가 시작된다. 즉 이런걸 부팅이라고 한다.
*ROM : 메인보드에 이미 공간이다
*바이오스 : ROM에 있는 프로그램이다. 컴퓨터 켜기 전, WINDOW 화면 전, 제조사로고 등 뭔가 실행되는게 보인다. 바로 그거다.
*OS가 켜지는 과정 : ROM >> 바이오스 >> 부팅 프로그램 >> OS(윈도우) >> 기타 프로그램(백신프로그램 )
2. 사용자 서비스 제공
■ 사용자 인터페이스 : 사용자와 컴퓨터 간의 상호작용 발생 공간 (CLI, 메뉴, GUI 등 구현)
CLI(Command Line Interface, 명령 라인 인터 페이스) : ex)리눅스
사용자가 키보드 등으로 명령어 입력하여 시스템에서 응답 받은 후, 또 다른 명령어를 입력 하여 시스템을 동작하게 하는 텍스트 전용 인터페이스
■ 메뉴 인터페이스
메뉴 등을 사용하여 시스템과 상호작용 사용 매우 편리, 배우거나 기억해야 할 명령 없 음
■ GUI(Graphical User Interface, 그래픽 사용자 인 터페이스)
윈도우 환경에서 사용자에게 정보와 작업을 표현하는 텍스트, 레이블이나 텍스트 탐색과 함께 그래픽 아이콘과 시각적 표시기, 버튼이나 스크롤바와 같은 위젯(Widget) 그래픽 제어 요소를 사용
■ 프로그램 실행
프로그램 실행하려면 먼저 메모리에 적재, 프로세서 시간 할당
운영체제는 프로그램을 실행하려고 메모리 할당이나 해제, 스케줄링 등 중요 작업 처리
■ 입출력 동작 수행
사용자는 디스크에서 파일 열고, 저장, 삭제하는 등 다양하게 파일 조작
■ 파일 시스템 조작
운영체제는 입출력 동작 직접 수행할 수 없는 사용자 프로그램의 입출력 동작 방법 제공
■ 통신(네트워크)
프로세스가 다른 프로세스와 정보를 교환하는 방법
동일한 컴퓨터에서 수행하는 프로세스 간의 정보 교환
두 번째는 네트워크로 연결된 컴퓨터 시스템에 서 수행하는 프로세스 간의 정보 교환
■ 오류 탐지
운영체제는 가능한 모든 하드웨어와 소프트웨어 수준에서 오류 탐지, 시스템 모니터링하여 조정 함으로써 하드웨어 문제 예방
*디스크 조각 모음, HDD 배드섹터 검출
입출력 장치에 관련된 오류와 메모리 오버 플로, 하드디스크의 불량 섹터 검출, 부적당한 메모리 접근과 데이터 손상 등
운영체제는 다음 오류 유형을 감지한 후 유형별 로 적절히 조치
3. 시스템 서비스
■ 자원 할당
운영체제는 다수의 사용자나 작업 동시 실행 시 운영체제가 자원을 각각 할당하도록 관리
프로세서 사이클, 메인 메모리, 파일 저장 장치 등은 특수한 할당 코드를 갖지만, 입출력장치 등 더 일반적인 요청과 해제 코드 가질 수 있음
■ 계정
운영체제는 각 사용자가 어떤 컴퓨터 자원을 얼마나 많이 사용하는지 정보 저장 추적
이 정보는 사용자 서비스 개선을 위해 시스템 재구성하는 연구자에게 귀중한 도구가 됨
■ 보호와 보안
운영체제는 다중 사용자 컴퓨터 시스템에 저장 된 정보 소유자의 사용을 제한
서로 관련이 없는 여러 작업을 동시에 수행할 때 는 한 작업이 다른 작업이나 운영체제를 방해하지 못하게 해야 함
■ 보호와 보안의 차이
보호란? 시스템 호출 하려고 전달한 모든 매개변수의 타당성 검사하고, 시스템 자원에 모든 사용자 접근을 제어하도록 보장하는 것
*내가 윈도우가 깔린 C드라이브 안에 들어갈 때, '주의하세요. 주인님! 이거 파일 건들면 OS 망가져요. 조심하세요!'
보안이란? 잘못된 접근 시도에서 외부 입출력장치 방어, 외부에 사용자 인증을 요구하는 것
*내 PC에 누군가 접근했네? 안돼! 이건 우리 주인님 컴퓨터야! 접근 못해!
4. 시스템 호출 서비스
실행 중인 프로그램과 운영체제 간의 인터페이스, API(Application Programming Interfaces)라고도 함
사용자 프로그램은 시스템 호출을 하여 운영체제의 기능 제공 받음
핵심 커널 서비스와 통신, 새로운 프로세스의 생성 과 실행, 하드웨어 관련 서비스 등이 있음
시스템과 상호작용하는 동작은 대개 사용자 수준 프로세스에서는 사용할 수 없으나, 시스템 호출을 하여 운영체제에 서비스를 요청할 수 있음
■ 시스템 호출 방법
프로그램에서 명령이나 서브루틴의 호출 형태로 호출
시스템에서 명령 해석기를 사용하여 대화 형태로 호출
■ 운영체제가 제공하는 일반적인 시스템 호출
프로세스 제어, 파일 조작, 장치 관리, 정보 유지 등
운영체제의 미래
1. 사람 같은 인공지능 OS , 미래 아닌 현재형 (예시, IP소프트의 아멜리아)
앞서 대화는 일상 속의 대화처럼 평범해 보이지만, 사실은 사람과 컴퓨터 운영체제(OS)가 실제 나눈 대화 내용 | >> | 컴퓨터와의 대화가 새삼스럽게 놀랄 만한 것은 아니나 주목할 만한 점은 OS가 기존의 단순 정보전달 차원에 서 문제 해결능력을 갖추는 단계까지 이르렀다는 점 |
*한마디로 OS가 단순한 정보전달만 해주는게 아닌, 대화를 통해 문제해결능력도 갖춘다. 즉 학습한다!
■ 아멜리아는 새로운 인공지능 접근법인 ‘인지 컴퓨팅 (Cognitive computing)’을 적용한 시스템
■ 인지 컴퓨팅의 가장 큰 특징은 학습이 가능한 기계라는 것
미국 IT 서비스 회사 IP소프트가 개발 중에 있는 아멜 리아는 교과서·대화 기록·이메일 등 모든 종류의 텍 스트로부터 배움 인지 컴퓨팅의 가장 큰 특징은 학습이 가능한 기계라는 것
아멜리아가 받아들인 데이터에 답이 들어있는 한 OS는 문제를 해결할 수 능력을 지니게 됨
2. 구글 OS 푸크시아
구글이 크롬에 이어 세번째 OS인 '푸크시아'를 최근 개발자들에게 공개함
초기버전이기 때문에 앞으로 변경될 가능성이 많지 만, IoT 및 ATM기 등 확장성을 염두한 것이라는 평 가가 나오면서 관심이 높아지고 있음
‘푸크시아'가 당초 임베디드 시스템 위한 OS로 개발 되다가, 태블릿PC와 스마트폰은 물론, 사물인터넷 및 ATM기, 심지어 신호등을 비롯한 일상의 기기에 도 적용이 가능함
3. 스마트카 운영체제
십여 년 전만 해도 자동차는 단순한 이동 수단이었다. 하지만 빠르게 발전하는 정보기술(IT)이 차 안으로 들어오면서 이제 차는 내비게이션·전화·메시지·오디오·영상·게임 등 다양한 IT 서비스가 가능한 공간으로 발전함
스마트폰에서 이용하던 다양한 서비스를 ‘스마트카’ 안에서 즐기게 된 것
차가 ‘바퀴 달린 거대한 스마트폰’으로 진화하면서 스마트폰 시장에서 벌어진 경쟁이 자동차 시장으로 확산되고 있다.
■ 스마트카 OS가 바꾼 생활
자동차에 탑재되는 OS는 운전자가 길 안내와 음악 감상 등을 편리하게 이용하고 보다 안전하게 운전할 수 있는 환경을 만드는 데 집중하고 있음
예전에는 내비게이션에 목적지를 입력하고 듣고 싶은 음악을 고르려면 버튼을 누르거나 화면을 조작해야 함
하지만 카플레이와 안드로이드 오토 등 OS가 탑재 된 스마트카는 목소리만 듣고도 길 안내를 시작하고 전화를 연결하는가 하면, 메시지를 보내고 음악을 틀어줌
■ 스마트카 OS의 현재의 기술력
자동차에 탑재되는 OS는 운전자가 길 안내와 음악 감상 등을 편리하게 이용하고, 보다 안전하게 운전할 수 있는 환경을 만드는데 집중하고 있음
주행 중 필요하면 “가까운 휴게소를 안내해줘” 혹은 “졸음 쫓을 수 있는 음악을 켜줘”, “친구에게 전화 걸 어줘”라는 명령으로 차 내 서비스를 제어할 수 있는 것
■ 국내 스마트카 OS 상황
현대차는 지난해 커넥티드카에 최적화된 독자적인 차량용 운영체제 ‘ccOS (connec-ted car Operating System)’를 개발하고 있다고 밝혔음
현대차는 ccOS가 주행에 필요한 수많은 기술을 연결하는 커넥티드카 환경을 안정적으로 구축하고, 방대한 데이터를 신속하게 처리할 수 있는 고도화된 소프트웨어 플랫폼이라고 설명했음
리눅스 기반의 오픈 소스가 활용될 계획
현대차는 남양연구소 차량IT개발센터 내 ccOS 개발 을 전담하는 소프트웨어 개발팀도 신설했다. 현대차 는 차종 간 호환성 확보 등을 위한 다양한 시뮬레이 션 테스트를 거쳐 2020년 ccOS가 탑재된 콘셉트카 를 출시할 것이라고 함
학습정리
■ 운영체제의 기능
운영체제 기능은 크게 자원 관리 기능, 시스템 보호, 네트워킹, 명령 해석기와 시스템 관리으로 구분된다.
자원 관리 기능에는 메모리 관리, 프로세스 관리, 주변장치 관리, 파일 관리가 있다.
운영체제는 파일 사용 권한 부여하고 데이터 암호화 등 서비스를 제공하며 데이터와 시스템을 보안한다.
프로세서는 다양한 방법으로 구성된 네트워크 이용, 완전 접속과 부분 접속 방법으로 연결한다.
■ 운영체제 서비스
부트스트래핑 서비스는 운영체제를 메인 메모리에 적재하는 과정이다.
사용자 서비스에는 사용자 인터페이스, 메뉴 인터페이스, GUI(Graphical User Interface), 프로그램 실행, 입출력 동작 수 행, 파일 시스템 조작, 통신(네트워크), 오류 탐지가 있다.
시스템 서비스에는 자원 할당, 계정, 보호와 보안이 있다.
■ 운영체제의 미래
사람 같은 인공지능 OS 즉, OS가 기존의 단순 정보전달 차원에서 문제 해결능력을 갖추는 단계까지 이르렀다.
새로운 운영체제는 태블릿PC와 스마트폰은 물론, 사물인터넷 및 ATM기, 심지어 신호등을 비롯한 일상의 기기에도 적용이 가능하다.
애플과 구글, 마이크로소프트(MS) 등 주요 기업이 스마트카에 탑재하는 운영체제(OS)를 선보이고 있다.
'컴퓨터공학 > 운영체제' 카테고리의 다른 글
6. 스케쥴링 알고리즘 (0) | 2024.06.25 |
---|---|
5. 프로세서 스케쥴링 (0) | 2024.06.12 |
4. 스레드의 개념 (1) | 2024.05.26 |
3. 프로세스의 개념 (0) | 2024.05.26 |
1. 운영체제 개요 (2) | 2024.05.21 |