728x90
반응형

OS 22

운영체제 - CS 면접 총정리

저는 공룡책 기반 + 구글링으로 정보를 얻었습니다. 피드백 정말 정말 해주시면 감사하겠습니다. 22.02.07 업데이트 22.10.11 업데이트 프로세스-스레드 더보기 프로레스 / 스레드 [CS Interview] - Thread, 스레드란? [CS Interview] - Process, 프로세스란? 동기-비동기 더보기 Sync vs Async, Block vs non-Block [CS Interview] - (A)Synchronous 그리고 (Non)-Blocking Mutex [컴퓨터(Computer Science)/시스템 프로그래밍(System Programming)] - 뮤텍스,Mutex (Mutual Exclusion) 쓰임과 예시 Semaphore [컴퓨터(Computer Science)/시스..

CS Interview 2021.11.22

Thread, 스레드란?

정의 Thread is a basic unit of CPU utilization. CPU, 프로세서 사용의 기본 단위를 말한다. 왜 프로세스가 아닌 스레드가 동작하는 최소단위인가? 동일한 목적을 가진 프로세스가 여러 개가 된다면 code, data stack을 따로 만들어야한다. 하지만 같은 일을 한다면 필요한 데이터를 굳이 2번 만들필요는 없다. (같은 일을 처리하기 위해 동일한 프로그램을 여러 개의 프로세스로 만들게 되면, 그만큼 메모리를 차지하게 되고 PCB 도 각각 만들어야되고 프로세스간 통신을 위해 비용이 커진다.) 데이터의 각 부분만 다르게 각자 읽어서 수행하는 것이 더 효율적이라는 말이다. CPU 수행에 관련된 부분은 나누되 나머지 메모리, 자원같은 것들을 공유하며 존재한다. **Stack ..

CS Interview 2021.06.29

시스템 프로그래밍을 배우는 이유

질문부터 해보겠다. 우선 시스템 프로그래밍을 왜 해야할까??? 취직이 잘되니까? ㅇㅋ 컴퓨터인의 소양이니까? ㅇㅋ 코딩 좀 하니까? ㅇㅋ 위의 말이 다 맞지만 진짜 시스템 프로그래밍을 배우는 이유는 우리가 프로그램을 만드는 과정을 알면 그 이유 또한 알게된다. 시작해보자 아래의 그림이 바로 Build Process이다. 우리가 무엇인가 만든다면 아래의 방식대로 짜게될 것이다. ** 여기서 초록색은 Development Tool을 말하고 ** 하얀색은 사용자의 정의에 따라 있기도 없기도 하다. 이제 이유를 알겠나...? "엥?? 모르겠는데? 내가 알고 있는 방법이랑 같은데??" 맞다. 우리는 이미 빌드 과정을 알고 있다. 하지만 우리는 그 활동을 시스템 위에서 하지 않는다. 우리가 하는 활동은 Applic..

File System, 파일 시스템 [운영체제]

그냥 참고하고 알아보자 메모리는 주소로 관리했지만 파일은 이름으로 정보를 저장하는 방식이라고 볼 수 있다. 또한 OS에서 다양한 장치들을 file이라고 부르기도 함. 리눅스를 배우면 알 듯이 파일로 할 수 있는 연산은 create, delete, read, write, open, close 등이 있다. meta data는 어떤 것이 만들어질 때 관련 정보들이 자동으로 생성되어 같이 저장되는 것을 의미하는데 파일을 생성할 때에도 마찬가지다. **open은 file의 meta data를 메모리에 올려놓는 것을 의미한다. 그래서 결국 File System이란 OS에서 파일을 관리하는 부분, 관리하는 방법, 파일에 대한 모든 것이다. Directory라는 말 많이 들어봤을 것이다. 경로라는 말로 해석되는데 Di..

Virtual Memory, 가상메모리 [운영체제]

앞서 페이징에 대해 먼저 알고와야한다. [컴퓨터(Computer Science)/운영체제(Operation System)] - Paging, 페이징, 불연속 메모리 할당 [운영체제] Virtual Memory란 별 거 아니다. 진짜 가상메모리다. 가상 메모리는 실제 물리 메모리 개념과 개발자의 논리 메모리 개념을 분리한 것이다. 가상 주소 공간은 그 프로세스가 메모리에 저장되는 논리적인 형태를 말한다. 이런 아이디어는 여기서 나왔다. 만약 프로그램을 일부만 올려놓고도 실행할 수 있게 된다면?? **실제로 프로그램이 실행될 때 모든 부분이 실행되지 않는다. 1. 프로그램은 물리 메모리 크기에 의해 더는 제약을 받지 않는다. ** 즉, 큰 가상 주소 공간을 가정하고 프로그램을 만든다 2. 각 프로그램이 더 ..

Paging, 페이징, 불연속 메모리 할당 [운영체제]

[Memory Management, 메모리 할당 방식 [운영체제] 에 이어서 불연속 할당에 대해서 알아보자 그 중 가장 대표적인 페이징에 대해서 알아보자 Paging 기법은 앞서 설명했던 것처럼 해당 프로세스의 관련된 데이터 모두를 적재하는 것이 아니다. 단순히 레지스터에 시작주소 값을 담아 사용하기에는 연속된 메모리영역이 필요하다. 이제 프로세스의 물리 주소 공간이 연속되지 않아도 되는 메모리 관리 기법인 페이징을 쓰는 것이다. 페이징은 연속 메모리 할당을 괴롭히는 2가지 문제인 외부 단편화, 관련 압축의 필요성을 피할 수 있게 한다. 이러한 많은 이점을 제공하기 때문에 대형 서버용 시스템부터 모바일 장치용 시스템까지 대부분의 운영체제에서 다향한 형태의 페이징이 사용된다. ++페이징은 운영체제와 컴퓨터..

Memory Management, 메모리 할당 방식 [운영체제]

메모리는 일반적으로 2 개의 부분으로 나누어진다. 하나는 운영체제를 위한 부분, 다른 하나는 사용자 프로세스를 위한 부분 **일반적으로 OS는 낮은 주소를 User Program은 높은 주소를 사용한다. 일반적으로 여러 사용자 프로세스가 동시에 메모리에 있기를 원하는데 그래서 메모리에 적재되기를 기다리는 프로세스에 사용 가능한 메모리를 할당하는 방법을 고려해야 한다. 연속적인 메모리 할당에서 각 프로세스는 다음 프로세스가 적재된 영역과 인접한 하나의 메모리 영역에 적재된다. 그러나 이 메모리 할당 기법에 대해 더 논의하기 전에 메모리 보호 문제를 해결해야 한다. **메모리 보호는 이전에 Relocation 레지스터와 limit 레지스터에 의해 보호된다고 언급했다. [컴퓨터(Computer Science)..

Segmentation, 세그먼트, 불연속 메모리 할당 [운영체제]

[컴퓨터(Computer Science)/운영체제(Operation System)] - Paging, 페이징, 불연속 메모리 할당 [운영체제] 메모리 할당 방법에는 페이징 말고도 다른 방법이 있다. 세그먼트 방식인데 한 번 알아보자 약간 중요도는 페이징보다는 떨어진다. 페이징과 비슷해보인다. 페이징은 그냥 쪼갠다하면 segment는 의미단위로 쪼갠다. 역시 주소 구성방법도 페이징과 매우 비슷하다. page number, page offset과 비슷해보인다. ** 각각 레지스터에 저장된 값과 비교하여 정상적인 작동을 돕고 아니면 trap을 건다. 직접 어떻게 구조가 이루어지나 본다면 CPU가 논리주소를 주게 되면 2부분으로 나누어 number에 맞는 장소를 찾기위해 segment table로 간다. 하지만..

Memory Management, 메모리 관리 기본 개념 [운영체제]

메모리에 대해서 알아볼 것이다. CPU는 PC(프로그램 카운터)가 지시하는 대로 메모리로부터 다음 수행할 명령어를 가져온다. 그 명령어는 추가적인 데이터가 필요하거나, 데이터를 메모리로 내보낼 수 있다. 명령어 실행은 메모리로부터 명령어를 가져오고, 해독하고 메모리에서 피연산자를 가져오고 그래서 실행한 후, 결과를 메모리에 저장한다. 메인 메모리와 각 처리 코어에 내장된 레지스터들은 CPU가 직접 접근할 수 있는 유일한 저장장치이다. Instruction들은 메모리 주소만을 인수로 취하고, 디스크의 주소를 인수로 취하지 않는다. ** Disk에 있다면 CPU가 쓸 수 없다는 말이다. ++일반적으로 CPU 코어에 내장된 레지스터들은 일반적으로 CPU clock의 cycle에 맞춰서 접근한다. 메모리 버스를..

동기화, 세마포 : Synchronization, Semaphores [운영체제]

많은 쇼프트웨어적 동기화 도구들이 있지만 우선 Semaphores, 세마포를 알아보자 이 글은 프로세스와 동기화, 임계구역에 대한 이해를 바탕으로 쓰는 글이다. [CS Interview] - Process, 프로세스란? [컴퓨터(Computer Science)/운영체제(Operation System)] - Critical Section, 임계구역이란? [운영체제] [컴퓨터(Computer Science)/운영체제(Operation System)] - 프로세스에서의 동기화 (Process Synchronization) [운영체제] **추가예시 [컴퓨터(Computer Science)/시스템 프로그래밍(System Programming)] - 세마포어,Semaphores 그 쓰임과 예시 Semaphores,..

728x90
반응형