소프트웨어 요점정리 01. 운영체제

Eojin·2023년 11월 22일
0

작성일
20231122
20231129


➡️ CS STUDY 1주차


✅ 운영체제는 무엇이고 어떤 역할을 수행하는지 설명해주세요.

운영체제는 컴퓨터 하드웨어를 제어하고 사용자와 하드웨어 사이에서 응용 프로그램의 서비스를 제공하는 시스템 소프트웨어입니다. 컴퓨터 시스템 자원을 효율적으로 관리해주고, 사용자가 하드웨어를 직접 다루기 복잡한 부분을 운영체제가 대신해주어 컴퓨터 시스템을 보다 편리하게 사용하게 도와주며, 악성 프로그램에 대해 사용자와 운영체제 자신을 보호하는 역할을 수행합니다.


✅ 다중 프로그래밍 시스템(multi-programming system)에 대해서 설명해주세요.

다중 프로그래밍 시스템 즉, 멀티 프로그래밍 시스템은 메모리 공간을 분할해서 여러 프로그램들을 적재하고 수행하는 시스템입니다. 예를들어 한 프로세스를 CPU가 수행하던 중에 I/O 이벤트가 발생하여 대기해야 하는 경우, 그동안 메모리에 적재된 다른 프로세스를 수행하는 식입니다. 이러한 멀티 프로그래밍은 CPU를 효율적으로 사용할 수 있게 해줍니다.


✅ 시분할 시스템에 대해서 설명해주세요.

여러 작업을 수행할 때 컴퓨터 처리 능력을 일정한 시간 단위로 분할해서 번갈아가며 여러 작업을 수행하는 시스템으로, 시분할 시스템을 사용하면 여러 프로그램이 마치 동시에 실행되는 것처럼 느껴집니다.


✅ 대화형 시스템(interactive system)에 대해서 설명해주세요.

인터렉티브 시스템은 사용자의 요청에 대한 결과를 곧바로 얻을 수 있는 시스템을 말합니다.


✅ 다중 처리기 시스템(multi-processor system)에 대해서 설명해주세요.

멀티 프로세싱은 다수의 프로세서가 협력적으로 여러 작업들을 동시에 처리하는 것을 말합니다. 멀티 프로세싱은 다수의 작업을 병렬로 처리할 수 있고, 어떤 프로세서가 고장날지라도 작업이 중단되지 않는 장점이 있습니다.


✅ 시스템 콜에 대해 설명해주세요.

인터럽트의 일종으로, 사용자 프로그램이 운영체제 커널에 있는 코드를 실행하고자 할 때 발생하는 신호입니다. 사용자 프로그램이 운영체제 커널에 있는 코드를 실행하기 위해, 시스템 콜을 발생시키면 CPU 제어권을 운영체제로 넘겨서 운영체제 커널에 있는 코드를 처리하게 됩니다.


✅ 커널에 대해 설명해주세요.

커널은 메모리에 항상 적재 되어있는 운영체제의 핵심 부분을 말합니다. 커널은 컴퓨터 하드웨어와 프로세스의 보안을 책임지고, 시스템 자원을 효율적으로 관리하고, CPU 스케줄링을 수행합니다. 또한 하드웨어 추상화를 통해 프로그래머가 하드웨어 위에서 동작하는 프로그램을 개발하는 것을 돕습니다. 또한 인터럽트가 발생하면 인터럽트 처리를 합니다.


✅ 커널모드에 대해 설명해주세요.

커널 모드는 시스템의 모든 메모리에 접근할 수 있고 모든 CPU 명령을 수행할 수 있는 모드 입니다. 예를 들어 프로세스는 사용자 모드에서 수행하던 중 시스템 콜이나 인터럽트가 발생하면, 커널모드로 전환 한 후 사용자 모드에서 처리할 수 없는 작업을 커널을 통해 수행 합니다.


✅ 유저모드에 대해 설명해주세요.

유저모드란 프로세스의 실행 상태중 하나로, 프로세스가 자신의 주소 공간에 정의된 코드를 실행하는 상태를 뜻합니다. 유저모드에서는 I/O 작업등 커널에 정의되어 있는 작업을 수행할 수 없습니다. 따라서 시스템 콜을 통해 커널모드로 전환하여 커널의 기능을 사용하도록 할 수 있습니다.


✅ 폴링에 대해 설명해주세요.

폴링은 CPU가 일정 주기마다 이벤트가 발생 했는지 소프트웨어적으로 확인하는 방법 입니다. 예를들어 CPU가 I/O 작업을 요청한뒤 CPU는 I/O 작업이 완료 되었는지 주기적으로 확인합니다. 이벤트에 대한 지속적인 확인을 수행하기 때문에 리소스가 소모되고, 이벤트가 발생한 정확한 타이밍에 처리하기가 어렵다는 단점이 있습니다. 하지만 구현은 쉽습니다.


✅ 인터럽트에 대해 설명해주세요.

인터럽트는 컴퓨터 작업 도중 커널의 처리가 필요할때 그것을 통보하는 것을 말합니다. 예를들어 I/O 장치가 요청받은 데이터를 다 읽어왔다던가 프로그램 수행 도중 예외가 발생했거나 프로세스가 직접 시스템 콜을 호출했을 때 인터럽트가 발생합니다. 인터럽트가 발생하면 먼저 인터럽트 벡터에서 해당 인터럽트에 대한 인터럽트 처리 루틴을 찾아서 인터럽트를 처리합니다. 인터럽트를 처리하기 전에는 CPU와 프로세스의 현재 상태를 저장해두고, 인터럽트가 처리되면 다시 상태 정보를 복구해서 이전 작업을 이어서 수행 합니다.


✅ DMA에 대해 설명해주세요.

DMA는 I/O 장치의 로컬버퍼에서 메인 메모리로 데이터를 읽어오는 작업을 CPU 대신 수행해줍니다. DMA를 사용하면 CPU가 I/O 장치에 의해 자주 인터럽트 당하는 것을 막아줘서 CPU를 좀 더 효율적으로 관리하고 입출력 연산을 빠르게 수행할 수 있습니다.


✅ 동기식 I/O에 대해 설명해주세요.

동기식 입출력은 어떤 프로그램이 I/O 요청을 했을 때 그 I/O 작업이 완료 되어야만 그 프로그램이 다음 작업을 수행할 수 있는 방식을 말합니다.


✅ 비동기식 I/O에 대해 설명해주세요.

동기식 입출력은 어떤 프로그램이 I/O 요청을 하면, 그 I/O 작업의 완료를 기다리는 것이 아니라, I/O 요청을 호출한 프로그램에게 제어권을 바로 넘겨줘서 그 프로그램이 다른 작업을 수행할 수 있도록 하는 방식 입니다.



➡️ 참고자료

[BLOG]


profile
'함께'가 즐거운 개발 공부하는 사람입니다.

0개의 댓글

관련 채용 정보