티스토리 뷰
운영체제란?
운영체제 : 컴퓨터의 사용자와 하드웨어 사이에서 중개자역할 하는 프로그램
하드웨어에게 일을 시키는 주체가 바로 운영체제
운영체제의 역사
수작업 ➡️ 단일 프로그래밍 ➡️ 다중 프로그래밍=멀티태스킹 & 시분할 ➡️ 모바일 OS & 실시간 시스템
운영체제의 목적
- 사용자가 컴퓨터를 편리하게 사용하는 것 (사용자측면)
- 컴퓨터 하드웨어가 효율적으로 사용되는 것 (컴퓨터측면)
컴퓨터 시스템의 처리구조
User : 사용자는 응용프로그램을 실행해서 명령을 넣고, 원하는 작업을 처리하려함
Application : 응용프로그램 한글이라는 표나 차트 다양한걸 이용했음
Operating System: 응용체제를 거쳐서
Hardware : 하드웨어로 보여지게되는것
그래서 사용자와 하드웨어 사이에 상호작용. 매개자 역할
사용자입장 : 몰라 그냥 딸깍 마우스클릭하고 치면 운영체제가 다해주니까 어떻게 돌아가는지 내가알게뭐임 => 오 컴퓨터 쉽네 존잼!
시스템입장 : 시스템 자원관리를 해줌 오 이거 관리도해주고 좋은디?
자원관리 / 응용프로그램관리
✔️ 시스템은 CPU 시간, 메모리 공간, 파일 저장소 공간, 입출력 장치 등 다양한 문제를 해결해야되는데
이걸 운영체제가 관리해주고있다.
✔️ 시스템 자원을 사용할 수 있도록 권한과 사용자를 관리해준다.
CPU(중앙처리장치 : Center processing Unit ) 컴퓨터의 두뇌 장치중하나지만 제일 중요한 장치 =>
말 그대로 중앙에서 사용자들이 입력한 명령어를 해석하고 연산한 후 그 결과를 제어하는 역할
CPU는 출력을 전달하기 전에 컴퓨터의 RAM에서 입력을 가져와 명령문을 이해하고 처리함
컴퓨터 시스템 구성
CPU와 장치컨트롤러로 구성 : 메모리 공유!
컴퓨터 작동에 대해 알아보자!
컴퓨터 시작
컴퓨터를 킨다.
부트스트랩 프로그램이 돌아간다. = 초기화 작업하는애
부트스트랩 => 부트로더 작동시킴
부트로더 =>운영체제 작동시킴
커널이 로드, 실행되면 => 유저에게 서비스제공해줘야됨
시스템 작동
입출력장치 : 마우스 키보드같은거, CPU 동시에 실행가능하다.
마우스클릭? 장치컨트롤러가 CPU에게 일러받치러감 얍! 제가 눌렀어! = 인터럽트(Interrupt)
컴터가 막 이일저일하다가 인터럽트 생겼다고 신호받으면? 커널은 다른거 중단하고 인터럽트 처리하고 그담에 하던거함
하드웨어, 소프트웨어 둘다 인터럽트 발생시킬수있듬! 공평쓰~
하드웨어 : 시스템버스 =>신호보냄 => 인터럽트
소프트웨어 : 시스템콜 => 신호보냄 =>인터럽트
폴링 이란? : 계속 지속적으로 인터럽트 들어오는지안오는지 보는거
인터럽트 주도적은 폴링이 자원낭비니까 그냥 CPU대기상태에 있게하다가 발생하면 발생시키는거
긍까 폴링은 가성비 안좋은놈들
인터럽트 주도적은 가성비 괜찮은놈들
기억장치(storage structure)
커널(운영체제는) 실행기라는 거(Executor)이그지..큐터...ㅋㅋㅋ 암튼 이거 통해서 프로그램을 실행시킨다.
저렇게 exe가 붙은게 프로그램인데 저걸 storage라는 기억장치에서 가져옴
긍까 다운받은 프로그램이 기억장치에있나봄.
이것들이 메인메모리에 로드되어서 휘리릭 실행이되는데
메인메모리 명칭이 바로 RAM (Random-Access Memory)
근데 램은 휘발성 메모리
메인메모리들 = 캐시, 레지스터 휘발성
보조기억장치 = SSD, 광학 디스크등 비휘발성
컴퓨타들의 최대절전모드 - 컴퓨터가 절전모드이면 메모리 보조기억장치에 담고, 다시 빠져나오면 담아둔거 불러워서 그대로 작동
I/O 구조
위에 기억장치는 그냥 in out 여러 입출력 장치중에 하나.
입출력장치 컴터는 개많이가지고있음
입출력장치도 제어해야되니까 컨트롤러도가지고있음
컴퓨터는 컨트롤러들 덕분에 편하게 제어해서 다양한 장치 사용가능
또 이 컨틀롤러들 제어를 위해 운영체제가 장치드라이버 (Device Driver)도 가지고있다함
일단 지금은 운영체제가 와따니까 그위에 제어할건없음.
입출력이 딱 들어온다?
장치드라이버 대빵이 컨트롤러의 레지스터 로드해봄 "키보드가 이채야채빵야빵야쳤듬" <- 이걸읽고
데이터 전송을 함, 장치 컨트롤러가 야 입터럽트(CPU에 일러받치는 그런 행위)끝냈다! 고 알려줌
오 끝났어? 그러면 장치드라이버가 운영체제가 부임해준 권력 =통제권 을 다시 운영체제 대빵이한테 줌 ㅠㅠ
장치드라이버도 결국 운영체제의 딱가리일뿐.. 암튼 입력받은 데이터도 같이 운영체제한테 돌려줌
라뗴는말야~ 장치데이터 관리하려구 CPU를 걸쳣..(그마ㅏㄴ...라뗴 멈춰!!)
요즘애들은 다이렉트로 갑니다.
DNA말고 DMA(Direct Memory Access)
CPU없이 장치 -------- 메모리 다이렉트로 연결가능!
이거 제어하는애? DMA 컨트롤러
나 데이터야!
DMA 컨트롤러 왈 : 응 내가 옮겨줄게 => 얘네가 장치드라이버한테 옮겨주고
아!!! 인터럽트 끝났심다 라고 또 해주면 끝! 이야 컨트롤러 열일하네!
암튼 CPU하는 일 줄어들어서 핵이득
성능도좋아짐. 와우 와따다!
컴퓨터 시스템 구조 = > 폰 노이만 구조

중요한거 이제 나온다 집중해라!!!
싱글 프로세서
과거에는 컴터들이 싱글 프로세서를 사용했음
디스크프로세서 -> 디스크연산만 실행
키보드 프로세서 -> 키보드연산만 실행
멀티 프로세서 = 프로세서 여러개
요즘에는 다 이거씀.
장점
1. 프로세서 여러개여서 처리량 증가. 처리많이할수있음
2. 규모의 경제. ㅋㅋㅋㅋ싱글쓰려면 여러개돌리려면 싱글 5개사야되는데 멀티는 하나로 5개행위가능.
3. 신뢰성 증가. 분산해서 하나의 프로세서가 작동을 멈춰도 전체 시스템은 느려질 뿐 멈추지 않는다.
내일 공부하고 더 추가하기~!
'백엔드&컴퓨터사이언스' 카테고리의 다른 글
[네트워크] TCP UDP (0) | 2022.01.03 |
---|---|
[컴퓨터 공학] 가비지컬렉터(메모리관련) (1) | 2021.12.31 |
[컴퓨터공학] 인코딩,유니코드,UTF-8이 뭐람 (0) | 2021.12.30 |
[인증/보안] 세션 vs 토큰 JWT (0) | 2021.12.28 |
[인증/보안]https 이해하기 (0) | 2021.12.27 |