운영체제 들어가기

2022. 11. 9. 16:49cs 상식/운영체제

운영체제 개요

 

 

 

ex)

개인용 컴퓨터: windows, 맥os 
대형컴퓨터, 서버용:유닉스나 리눅스
스마트폰,태블릿: 안드로이드 ,ios
네비게이션 ,스마트워치,냉장고 ,세탁기:임베디드 운영체제

 

Q컴퓨터는 운영체제가 없이도 동작을 할 수 있다?
=컴퓨터는 운영체제가 없이도 동자을 할수 있지만 유연하지 못하다. 
EX)유선 전화기는  통화 기능밖에 안되지만 스마트폰은 다양하게 사용가능하다.

 

 

운영체제가 하는일

 

 

1.운영체제가 하는 일중에 첫번째는 프로세스를 관리한다
ex)cpu가를 독차지해 다른 것이 안될수있다.


2. 메모리관리 
모든 프로그램은 메모리에 올라와서 
동작을 한다. 오늘날 운영체제는 여러프로그램을
동시에 실행시키기에  관리 

 


3. 하드웨어 관리 
운영체제는 사용자의 하드웨어 대한 접근을 막는다.하드디스크에 데이터를 저장할때 우리가 
직접 특정영역에 바로 저장하지 못하고 운영체제가 직접 배치한다.
하드디스크에 특정영역에 다른 중요한데이터가
있을수 있고 악의적인 공격이 있을수 있기때문이다.

4.파일 시스템 관리
하드디스크의 많은 파일 효율적인 저장 파일관리를 알아본다

운영체제가 하는일
1.프로세스 관리
2.메모리 관리 
3.하드웨어 관리 
사용자의 하드웨어에 대한 직접접근을 제한한다
4.파일시스템 관리

 

운영체제의 구조 

핵심: 커널 (프로세스와 메모리 저장 장치를 관리하는 핵심적인 기능 담당)

사용자는 운영체제 커널에 직접 접근 하지 못한다.

 

1.인터페이스를 통해 접근이 가능

GUI (Graphc user Interface)        CLI (Commend-Line Interface)
그래픽을 이용해서 커널과 상호작용을 한다. 텍스트를 이용해서 커널과 상호작용을 한당.
ex)windows,max os ex)유닉스,리눅스

2.애플리케이션은 "시스템콜" 통해 커널 접근가능하다.

 

=커널은 사용자로부터 자신을 보호하기 위한 "시스템콜"이라는 인터페이스를 가지고 있다.

ex)사용자나 애플리케이션이 하드디스크에 데이터를 저장한다고 가정 "시스템콜"없이 애플리케이션이 하드디스크에 직접 접근하면 중요한 데이터를 덮어쓸수 있다 해당 사용자나 애플리케이션이 저장한 데이터를 다른 애플리케이션이 덮어 쓸수 있다.

 

 

"시스템콜"이용시 커널에서 제공 "write"함수를 쓰게된다. 그럼 운영체제가 알아서 하드디스크에 빈공간에 저장한다.


-사용자와 애플리케이션은 커널과의 인터페이스로  "시스템콜을 사용한다고 했는데 하드웨어와 커널의 인터페이스로는
하드웨어와 커널의 인터페이스로는 드라이버를 사용한다. 운영체제는 많은 종류의 하드웨어를 전부지원해야 하기 때문에 각각에 하드웨어에 맞는 프로그램을 커널이 미리 전부가지고 있기는 힘들다, 그래서 하드웨어를 제작한 회사에서 드라이버를 만들어 제공한다. 
-보통 키보드나 마우스 같은 간단한 장치들은 커널에 포함되어 있어 컴퓨터에 꽂으면 바로 동작하지만 그래픽카드나 태블렛 같은 복잡한 장치는 디바이스 드라이버를 설치해서 사용한다.

컴퓨터 하드웨어와 구조 

폰 노이만 ?

CPU와 메모리를 두고 이들사이는 버스(데이터를 전달하는 통로)로 연결 한다.

프로그램은 메모리에 내장시켜서 실행시키는데 프로그램을 메모리에 내장했다고 해서 

프로그램 내장 방식이라고 한다.

 

메인보드: 장치 간에 데이터를 전송

폰노이만 구조: CPU ,메모리 필수 

하드디스크 연결 단자 하드디스크 꽂기

그래픽카드 연결 단자 그래픽카드 꽂기

 

CPU 구조 

 

:중앙처리 장치

  1. 산술논리 연산장치:CPU에서 실제로 데이터 연산을 담당하는 것이 산술논리 연산 장치이다.
  2. 제어장치: 모든 장치들의 동작을 지시하고 제어하는 장치이다.
  3. 레지스터:CPU내에서 계산을 위해 임시로 보관하는 장치이다.변수와같다.

메모리 종류

 

 

RAM: 랜덤으로 데이터를 읽어도 저장된 위치와 상관없이 읽는 속도가 같습니다. RAM은 전력이 끊기면

데이터를 잃어버리기 때문에 메인 메모리로 사용된다.

ROM: 전력이 끊겨도 데이터를 계속 보관할 수 있지만 데이터를 한 번 쓰면 수정이 불가능합니다.그래서 ROM은 컴퓨터의 부팅과 관련된 바이오스를 저장하는데에 주로 쓰입니다.

 

컴퓨터의 부팅 과정

퓨터에 실행을 누르면 ROM에 저장된 바이오스가 실행됩니다. 

CPU,RAM,키보드,마우스 ,하드디스크 등 하드웨어에 이상이 없는지 체크합니다. 

만약 주요장치에 이상이 있다면 오류음을 내면서 부팅이 이뤄지지않고  이상이없다면 하드디스크에 있는 마스터레코드에 저장된 부트로더를 메모리로 가져와서 실행을 시킨다.  그후 어느 운영체제를 메모리로 불러오고  모니터에 바탕화면이 보이게 된다. 이제 부터 실행되는 모든 응용프로그램은 메모리에 올라와서 운영체제가 관리합니다.

 

인터럽트

 

CPU가 입출력 장치에 데이터를  읽거나 쓰려는 상황

-입출력 관리자에게 입출력 명령을 내린다, CPU입장에서는 언제 완료되는지 알수 없기에 

계속 입출력 관리자에게 물어보게 된다, 이런 방식을 폴링 방식이라고한다, 이 방식은

CPU가 주기적으로 확인을 해야 하다보니 성능이 좋지 않다는 것이다.

-인터럽트는 폴링 방식의 단점을 해결한 것이다.

CPU가 입출력 관리자에게 명령을 내리고 자기는 다른 작업을 계속하고 입출력 관리자는

작업이 다 되면 CPU에게 알리고 CPU는 인터럽트 서비스 루틴(ISR)을 실행시켜 작업을 완료합니다.

 

-인터럽트는 비동기적으로 작동이 된다.

 

 

 

 

 

'cs 상식 > 운영체제' 카테고리의 다른 글

데드락  (0) 2022.11.16
프로세스 동기화  (0) 2022.11.15
CPU스케줄링 (2)  (0) 2022.11.14
CPU스케줄링  (0) 2022.11.14
프로세스와 쓰레드  (0) 2022.11.09