반응형 Tech Interview/Operating System7 [운영체제] 파일 시스템 & 디스크 관리 Q) 파일 보호는 왜 필요하며 어떻게 이루어지나요? A) 프로세스의 경우 제각각의 메모리를 갖고 있고 자기 자신만이 접근이 가능하기 때문에 read/write에 관한 접근 명령만 관리했습니다. 그러나 파일의 경우 여러 사용자가 사용할 수 있기 때문에 각 파일에 대해 누구에게 어떤 권한을 허용할 것인가가 필요합니다. Access control Matrix는 각 파일마다 사용자별로 어떤 접근 권한을 갖고 있는지 표시해놓은 행렬입니다. 하지만 공간적인 낭비를 이유로 선호되지 않는 방법입니다. Grouping 방법은 전체 사용자를 owner, group, other로 구분한 뒤 각 파일에 대해 세 그룹의 접근 권한(read, write, execution)을 3비트씩 표시합니다. Q) 디스크에 파일을 저장하는 .. 2021. 11. 8. [운영체제] 메모리 관리 & 가상 메모리 Q) 연속할당과 불연속할당의 차이를 설명해주세요. A) 메모리의 낮은 주소 영역엔 커널이 상주해있고 메모리의 높은 주소 영역엔 사용자 프로그램이 올라가게 됩니다. 이때 사용자 프로그램을 할당하는 방식에 따라 연속할당과 불연속할당으로 나눌 수 있습니다. 연속할당은 다시 고정 분할 방식과 가변 분할 방식으로 나뉩니다. 고정 분할 방식은 물리적메모리를 미리 몇 개의 분할로 나누어 그 곳에 프로그램을 적재하는 방식입니다. 이 방법은 내부, 외부 조각이 모두 발생할 수 있습니다. 가변 분할 방식은 프로그램 크기를 고려하여 분할의 크기와 개수가 동적으로 변하는 방식입니다. 이 방법은 외부조각이 발생할 수 있으며 프로그램을 어느 홀에 적재시킬지 결정하는 문제가 추가로 발생합니다. 불연속할당은 하나의 프로세스를 여러 .. 2021. 11. 8. [운영체제] 프로세스 동기화와 데드락 Q) race condition이 무엇이며 언제 일어날 수 있나요? A) race condition은 두개의 연산이 동시에 공유 자원에 접근할 때 결과가 일관성을 보장 받지 못하는 상태를 말합니다. Q) race condition이 발생할 수 있는 상황과 해결법을 알려주세요. A) race condition은 세가지 경우에 일어납니다. 첫번째로 커널 작업을 수행하는 중에 인터럽트가 발생하는 상황입니다. 커널 모드에서 데이터를 로드하여 수행하다 인터럽트가 발생하여 같은 데이터에 접근하는 경우입니다. 해결을 위해서는 중요한 데이터에 접근하고 있을 때는 인터럽트를 바로 처리하지 않고 해당 작업 이후에 처리하는 방법을 사용합니다. 두번째는 프로세스가 시스템 콜을 하여 커널 모드 수행 중인데 문맥 교환이 일어나는.. 2021. 11. 7. [운영체제] CPU 스케줄링 Q) 여러가지 CPU 스케줄링 기법은 어떻게 평가되나요? A) 시스템 관점에서는 CPU 이용률과 처리량(throughput)을 높이는 데 목적이 있고 개별 프로세스 관점에서는 응답시간, 대기시간, 소요시간을 짧게 하는 것이 목적입니다. 이때 응답시간은 준비상태의 프로세스에게 최초로 CPU가 할당되기까지 걸린 시간, 대기 시간은 ready 상태에서 CPU를 기다린 총 시간, 소요시간은 프로세스가 CPU를 요청한 시점으로부터 원하는 만큼의 CPU를 모두 사용하는 데 걸린 시간입니다. 소요시간은 CPU 버스트가 완료될 때까지의 시간으로, 프로그램의 종료시점과는 좀 다릅니다. Q) 여러가지 CPU 스케줄링 방법에 대해 간략히 설명해주세요. A) 우선 스케줄링을 두가지로 나눌 수 있습니다. CPU를 강제로 빼앗기.. 2021. 11. 7. [운영체제] 프로세스 Q) 프로세스가 무엇인가요? A) 다양한 의미가 있지만 실행중인 프로그램을 뜻합니다. Q) 프로세스의 다양한 상태(state)에 대해 설명해주세요. A) 프로세스는 다양하게 상태가 변경되며 수행됩니다. new 상태는 프로세스가 생성중인 상태입니다. 그러다 프로그램이 메모리에 올라가고 CPU를 기다리는 상태가 되면 ready 상태라고 합니다. CPU를 잡고 명령을 수행중인 상태는 running 상태입니다. 입출력 명령을 기다리는 동안 프로세스는 CPU를 빼앗기게 되고 CPU를 할당받더라도 당장 명령을 수행할 수 없는 상태가 되는데, 이를 blocked 상태라고 합니다. 수행이 끝난 상태는 terminated 상태라고 합니다. 그런데 운영체제는 너무 많은 프로세스가 메모리에 올라와 있으면 당장 사용하지 않는.. 2021. 11. 6. [운영체제] 하드웨어 수행 과정 Q) 커널모드와 사용자모드는 무슨 차이가 있나요? A)커널모드는 운영체제가 CPU를 받아 운영체제의 코드를 실행하는 부분으로, 모든 종류의 명령을 실행할 수 있습니다. 반면 사용자모드는 사용자프로그램이 CPU를 받아 제한적인 명령만 실행합니다. 사용자 프로그램이 하드웨어 접근 등 보안이 요구되는 명령을 실행하기 위해서는 운영체제에게 이 명령을 대신해줄 것을 요청하는데, 이를 시스템콜이라고 합니다. 즉 프로그램이 자신의 주소 공간 내에 있는 함수가 아닌 커널의 함수를 호출하는 것을 뜻합니다. 또한 보안이 요구되는 명령들은 특권명령이라고 합니다. 특권명령은 커널모드에서만 실행할 수 있습니다. Q) 인터럽트가 무엇인가요? A) 인터럽트는 CPU에게 하던 일을 멈추고 인터럽트에 관한 내용을 먼저 처리하라고 알리.. 2021. 11. 6. 이전 1 2 다음 반응형