🌞 운영체제의 개념
응용 프로그램(사용자)과 하드웨어 간의 중재자 역할을 하는 프로그램이다.
하드웨어를 효율적으로 관리하는 시스템 소프트웨어이다.
응용프로그램의 실행을 제어하는 시스템 소프트웨어이다.
사용자와 하드웨어 사이의 대화 통로
컴퓨터를 편리하게 사용할 수 있도록 사용자 인터페이스를 제공한다.
응용 프로그램이 작업을 할 수 있는 환경을 제공한다.
하드웨어의 자원을 운영하고 관리한다.
응용 프로그램 내의 부적절한 명령어나 오류에 대하여 대처한다.
🌞 운영체제 개발 목표
이는 또다시 사용자의 편의성 극대화 와 시스템의 성능 극대화 로 나뉜다.
또 이는 처리능력증대, 응답시간 단축, 신뢰도 향상, 사용가능도 향상 으로 나뉜다.
결론적으로 운영체제의 개발 목표는
사용자의 편의성과 시스템의 성능을 최대한으로 끌어올려 생산성을 극대화하는 것 이다.
하지만 이는 서로의 상관관계가 있어서 편의성up -> 성능down,
성능up -> 편의성down 의 결과가 난다.
🌞 운영체제의 기능
1) 자원관리의 기능 : 메모리관리, 프로세스관리, 주변장치관리, 파일관리
2) 기타 시스템관리의 기능 : 시스템 보호(사용자 권한 부여), 네트워킹, 명령해석기
1) 메모리 할당 / 회수
2) 어떤 프로세스에게 얼만큼 할당할 것인지 결정
1) 프로세스 생성, 종료
2) 프로세스 중지, 재수행
3) 프로세스 스케줄링
4) 프로세스 통신 방법 제공 (소켓, 시그널, shared_memory)
5) 프로세스 동기화 방법 제공 (프로세스가 협력을 하는 경우 순서를 맞춤)
6) 교착상태 (dead lock) 방지 방법 제공
1) 일반 / 특정 장치용 드라이버 제공
-> 장치 드라이버를 사용하여 입출력장치와 상호작용
2) 입출력 장치 스케줄링
3)접근 요청 스케줄링
-> 디스크 스케줄링
4) 보조 기억 장치 관리의 기능
-> 저장 장소 할당 / 회수
-> 빈 공간 관리
-> 버퍼캐시 기능 제공
( 버퍼캐시 : 메인메모리가 이미 다 사용한 데이터를 디스크로 반환하지 않고, 버퍼캐시라는 공간을 두어 저장을 한다. 이 경우 새로이 해당 데이터를 다시 실행한다 했을 때, 디스크에서 다시 끌어오지 않고 메인메로리 내의 있는 버퍼캐시에서 데이터를 가져오기 때문에 빠르게 데이터를 처리 할 수 있다.)
1) 파일 생성, 삭제
-> 디렉터리 생성, 삭제
-> 비휘발성 저장장치에 파일 저장
2) 파일에 대한 접근 제어
3) 보조기억장치의 file mapping
(디스크의 파일을 메모리에 적재하는 것,
메모리에 입출력 하는 것이 바로 디스크 입출력이 되게 하는 기능)
컴퓨터 자원에 대한 프로세스와 사용자의 접근 제어
-> 동시 실행프로세스들은 상호 보호필요
-> 데이터 보호
(파일 사용 권한 부여, 데이터 암호화등의 서비스 제공
파일 공유 시 여러 사용자로 부터 파일 보호)
프로세스 통신 시 경로 설정, 접속 정책, 충돌, 보안 등 고려해야 함
명령어 해석기는 운영체제의 일부
-> 사용자와 운영체제 사이의 인터페이스 ex) unix의 shell
-> 커널과 분리하는 것이 좋음
(커널 코드 변경 없이 명령어 해석기의 인터페이스만 변경 가능)