일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 우아한테크코스 블랙잭
- clearAutomatically
- 검색api
- 우분투
- jpa
- 우아한테크코스
- 자바 롬복
- 밤랩
- 벌크연산
- NonUniqueResultException
- @Query
- 우테코
- SpringDataJPA
- 우아한테크코스5기
- 레벨인터뷰
- bomblab
- ubuntu이미지
- 회고
- @Modifying
- 배포스크립트
- 영속성컨텍스트
- Mock
- @Param
- unique result
- BDDMockito
- docker에 ubuntu
- 스프링 롬복
- 스프링부트배포
- Argos
- ubuntu
- Today
- Total
Jeomxon's Tech Note
운영체제 정리 - 1주차 본문
1. 운영체제는 무엇이고 어떤 역할을 수행하는지 설명해주세요.
운영체제는 컴퓨터의 소프트웨어적인 요소로 하드웨어와 사용자 사이의 상호작용을 원활하도록 돕는 역할을 한다.
운영체제가 수행하는 역할
- 자원관리
- 하드웨어 자원 관리
- 프로세스 관리
- 파일 시스템 관리
- 파일 및 디렉터리 관리
- 입출력 관리
- 키보드, 마우스, 모니터, 프린터 등 입출력 장치 관리
- 유저 인터페이스 제공
- GUI등의 사용자와 컴퓨터의 상호작용을 위한 인터페이스 제공
- 보안 및 권한 관리
.
.
.
2. 다중 프로그래밍 시스템(multi-programming system)에 대해서 설명해주세요.
메모리에 여러 개의 프로그램을 띄워 동시에 여러 작업을 실행하는 것처럼 처리하는 시스템이다.
하지만 사실 동시에 처리하는 것처럼 보이게 하는 것이지 실제로는 CPU가 매우 빠른 속도로 프로그램 여러 개를 번갈아가면서 실행하는 것이다.
이를 위해서는 CPU스케줄링이 필요하다.
CPU스케줄링
CPU는 계속해서 작업을 처리하기 위해서 ReadyQueue에 있는 프로세스 중 하나를 선택하여 실행해야하는데, 이를 CPU 스케줄러가 한다.
스케줄링 방식에서는 선점, 비선점 스케줄링이 있다.
선점 스케줄링
프로세스가 CPU를 작업상태에 관계없이 점유할 수 있는 방식이다.
비선점 스케줄링
한 프로세스가 한번 CPU를 점유했다면 프로세스가 실행 -> 대기, 혹은 종료될 때까지 점유하지 못하는 방식이다.
3. 커널에 대해 설명해주세요.
커널은 항상 메모리에 올라가있는 운영체제의 핵심이라고 할 수 있다.
하드웨어와 소프트웨어 사이에서 인터페이스 역할을 제공하며, 컴퓨터의 다양한 자원을 관리하는 역할을 한다. 즉 관리자의 역할을 한다.
커널은 5가지의 관리자 역할을 한다.
커널의 5가지 관리자
- 프로세스 관리자
- 메모리 관리자
- 파일 시스템 관리자
- 입출력 관리자
- 보안 및 권한 관리자
4. 커널모드와 유저모드에 대해 설명해주세요.
커널모드와 유저모드는 커널이 하드웨어와 상호작용할 때 사용하는 모드이다.
운영체제는 듀얼(커널, 유저)모드로 작동하는데, 각 프로세스 실행 시 서로 방해하거나 충돌을 일으키는 경우를 방지하기 위한 보안기법으로 사용된다.
중요하거나 위험한 명령은 커널모드, 그 외는 유저모드에서 작동한다.
cpu내부의 mode bit를 통해서 커널모드와 유저모드를 구분한다.
보통 중요하지 않은 명령에 대해서 유저모드로 실행하다, 중요한 명령을 실행할 때 시스템 콜을 호출하여 mode bit를 바꾸고 커널모드로 전환한다.
그 후 커널모드에서 중요한 명령을 처리하다가 다시 유저모드로 돌아갈 때 mode bit를 바꾼다.