학교에서 쓰는 교재 정독 -> 인프런 공룡책 듣는게 나을듯.
1. 개요
운영체제는?
컴퓨터 하드웨어와 컴퓨터 사용자간의 매개체 역할을 하는 시스템 소프트웨어로서
사용자 프로그램을 수행할 수 있는 환경제공.
주 목적 : 컴퓨터 시스템을 편리하게 이용할 수 있게 하는데 있다.
부수적 : 컴퓨터 하드웨어를 효율적으로 관리
컴퓨터 시스템
하드웨어, 운영체제, 응용프로그램, 사용자 네부분으로 나눌 수 있다.
> 하드웨어
중앙처리장치, 기억장치, 입출력장치로 구성되어 계산을 하기 위한 기본적인 자원을 제공한다.
> 응용프로그램
사용자가 제시한 문제를 풀기 위해 필요한 자원의 사용방법정의
자원할당자인 운영체제
운영체제는 자원(중앙처리장치 점유시간, 기억장치 공간, 파일 저장 공간, 입출력장치 등) 의 관리자로서 특정 프로그램과 사용자간의 작업에 필요한 자원할당. 이들 자원에 대한 요구가 많고, 이들 요구가 서로 충돌되는 경우가 발생하기 때문에, 운영체제는 컴퓨터 시스템을 공정하고 효율적으로 운영하기 위해 어떻게 자원을 할당할 것인가를 결정해야한다.
- 어떤 응용프로그램이 우선순위가 가장 높은가?
- 어떤 파일이 하드 드라이브 상의 가장 빠른 검색이 가능한 위치를 부여받을까?
- CPU의 처리속도와 디스크 접근속도 중 어떤 쪽이 더 중요한가?
- 상대적으로 더 우대되어야 할 사용자의 일인경우, 그 처리를 위한 대기시간의 최소화가 가능한가?
운영체제의 또다른 관점
- 입출력장치와 사용자 프로그램의 통제자로 보는것.
- 이때의 운영체제는 제어 프로그램으로 볼 수 있음.
- 제어프로그램은 사용자 프로그램을 통제하여 오류또는 컴퓨터의 부적절한 사용을 방지한다는 것.
컴퓨터 시스템의 근본적인 목적
- 사용자 프로그램 실행
- 사용자 문제 쉽게 해결하도록 함.
즉, 자원들을 통제하고 할당하는 공통적인 기능을 하나의 소프트웨어로 통합한것이 운영체제이다.
운영체제의 기능
- cpu / 프로세스 관리
- 메모리관리
- 파일시스템 관리
- 장치 관리
- 네트워크 관리
- 보안 관리
커널: 단어의 뜻에서 유추해볼 수 있듯이 커널은 “운영체제의 핵심부로 컴퓨터 자원들을 관리하는 역할”을 수행합니다.
컴퓨터 자원(System Resource) : CPU, 메모리, 파일, 네트워크, 입출력 장치 등
프로세스 : 실행중인 프로그램
1.2 운영체제의 유형
초기의 컴퓨터
1. 천공카드
2. 프린트 패널 스위치를 이용하여 주기억장치에 적재한 후
해당되는 번지를 눌러서 프로그램의 시작번지와 그 실행 지시 ->
실행시작되면 콘솔에 나타나는 램프를 보고 프로그램의 실행감지 ->
오류발생시 실행을 멈추고 주기억장치와 레지스터의 내용을 덤프하여 콘솔상에서 디버깅함.
3.
카드 판독기, 라인 프린터, 자기테이프 : 하드웨어
어셈블러, 로더, 링커 : 소프트웨어 등 이 부가적으로 개발되어 프로그래밍 작업 용이
4. FORTRAN,COBOL 등 프로그래밍 언어를 위한 컴파일러가 개발되어 프로그래밍 작업을 훨씬 쉽게함. 해당 컴파일러를 컴퓨터에 적재하고, 프로그램은 카드 판독기나, 다른 입력장치 상에서 읽어들임으로써 해당 컴파일러는 컴퓨터에 의해서 실행이 가능한 2진 목적 코드 형태를 만들어냈다.
1.2.1 일괄 처리 시스템
초기 컴퓨터는 오퍼레이터의 작업준비 시간이 큰 문제가 되었음.
오퍼레이터가 콘솔을 조작하고 있는 동안 중앙처리장치는 유휴상태로 되기때문
1) 작업순서의 자동화 개념 도입
> 상주 모니터를 두다.
상주모니터: 한 프로그램에서 다음 프로그램으로 제어를 자동적으로 넘기기 위해 만들어짐.
> 시스템 초기에 시스템에 대한 제어를 가지고있다가
> 새로운 프로그램이 실행되고자 하면 그 프로그램에게 제어를 넘기고,
> 그 프로그램이 실행을 완료하면 일단 제어를 되돌려 받은 후
> 필요하다면 또 다른 프로그램에게 제어를 넘김으로써 작업간의 전이를 오퍼레이터의 개입 없이 자동적으로 수행하고자함.
- 작업제어카드 : 상주모니터에게 전달하는 카드 ( 프로그램 수행정보, 하드웨어 자원, 작업이름 정의)
일괄처리 시스템은 작업의 준비 및 실행순서를 자동화 -> 시스템의 성능 증진
하나의 작업 시작 -> 그 작업이 모든 시스템 자원 독점 사용하여 중앙처리장치가 빈번한 유휴시간 가짐
1.2.2 다중 프로그래밍 시스템
중앙처리장치가 항상 수행되도록 함.
주 기억장치 내에 여러 프로그램들이 존재하도록 함으로써 이용도를 높임
주 기억장치 내에 있는 여러 작업들중 어느하나를 선정하여 실행하기 시작.
다중 프로그래밍 체제에서는 운영체제가 다른 작업으로 교환(switching)하여 새로운 작업을 수행하도록 함.
이렇게 되면 중앙처리장치는 못쉬어~
여러개의 작업을 준비상태로 두고, 준비상태에 있는 여러 작업들 중 어느 한 작업을 실행할 작업으로 선정하는데이는 별도의 기억장치 관리 기법이나 중앙처리장치 관리 기법 등이 필요하다.
1.2.3 시 분할 시스템(time - sharing system)
다중 프로그래밍의 변형된 형태
사용자로 하여금 터미널을 통하여 컴퓨터와 직접 접촉할 수 있도록 하기 위하여 개발되었다.
또한 자신만이 컴퓨터 시스템을 독점하여 사용하고 있는듯한 환상이나 착각을 가지게함
- 여러 사용자들의 컴퓨터 자원에 대한 짧은 시간 단위의 공유
- 대화식 단말장치를 이용하여 시분할 시스템과 인터페이스
>>> 이로 인하여 빠른시간안에 오류를 찾아내고 교정 가능, 장시간 대기 안해도됨
문제점
- 자원 제어에대한 대부분의 책임을 운영체제에 전가시켜 운체를 복잡하게 함
- 운영체제는 기억장치에 복수개의 프로그램을 동시에 두는 문제에 대한 배려 및 그들을 위한 기억장소를 주기억장치나 보조 기억장치에서 관리하고 제어하는 책임을 져야함.
- 여러 사용자에 대한 공정한 자원 공유를 보장하기 위하여 어떤 사용자에게 중앙처리 장치를 사용하게 할 것인지 스케줄링 해야함
- 실행중인 프로세스간의 통신 및 입출력 장치의 사용에 대한 제어 및 관리 능력
등~ 이 필요하다.
1.2.4 실시간 시스템
----다음부터. 아무래도 교수님(강사님)께서 책을 고대로 요약하신듯해서 그냥 그거 읽어야겠음
'✍2021,2022' 카테고리의 다른 글
linux (?) 필기 (0) | 2022.09.03 |
---|---|
Database Programming (0) | 2022.08.10 |
공부 계획 (0) | 2022.03.20 |
Arduino (0) | 2021.10.08 |