728x90
반응형

운영체제 44

운영체제 - 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

시스템 프로그래밍을 위한 기본 OS 지식

전 글에서는 시스템 프로그래밍을 하는 이유를 배웠다. 그렇다면 이제 프로그래밍을 할 때 알아야 하는 지식에는 무엇이 있을까? 사실 컴퓨터 구조 + 운영체제 만 알면 된다고 감히 말할 수 있다. **위의 두 분야에 대한 글도 써놓았다. 우선 오늘은 OS부터 알아보자 우선 OS란 무엇인지부터 알아보자 OS란 사용자의 편의성과 자원분배의 효율성을 위해 만들어진 소프트웨어라고 볼 수 있다. 자원분배의 효율성이란 하드웨어의 자원을 효율적으로 관리 + 사용자 간의 보안 유지 + 오류 관리를 말한다. 편의성이란 GUI같은 인터페이스 + Standard Library + 사용자가 하드웨어 자원 접근 용이를 말한다. ++ 다른 설명으로는 (참고) Operating systems provide a virtual machi..

Disk Management, 디스크 관리 [운영체제]

디스크는 느리다 뭐다 그래서 지금까지 배워왔고 이제 디스크가 뭔지 알아 보려고 한다. 일반적인 디스크를 기준으로 설명한다. 디스크의 최소 단위는 섹터고 (물리적) 디스크 외부에서는 logical block( 논리적) 으로 사용한다. ** Sector 0은 일반적으로 부팅과 관련된 정보가 들어있다. 섹터에는 데이터만 단독 저장이 되는 것이 아니라 head와 trailer가 같이 저장된다. 에러 검출 코드나 섹터 번호와 같은 것들이 같이 저장된다. 부팅이 된다면 당연히 메인 메모리는 Volatile이기 때문에 다 비어있을 것이다. 그래서 ROM이라는 비휘발성 영역을 이용한다. ROM의 주소로 가서 0번 섹터의 내용을 메모리에 적재하고 실행하는 것이다. 결국 디스크에 있는 부팅영역을 실행하게 되어 OS는 부팅..

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

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

운영체제에서 스와핑(Swapping)

스와핑 이미 언급했지만 한 번 더 다뤄보자 더 ㅎㅎ • A process can be swapped temporarily out of memory to a backing store, and then brought back into memory for continued execution Total physical memory space of processes can exceed physical memory • Backing store – fast disk large enough to accommodate copies of all memory images for all users; must provide direct access to these memory images • Roll out, roll in –..

XXXXXXXXXXX

페이징이 하나로 끝나지가 않는다. 왜냐? 엄청 중요한 내용이거든..ㅎㅎ 솔직히 이용할 땐 모르지만 설계하려면 알아야지 저번 글에서 페이지 테이블(page table)을 배웠다.// page number + page offset 이다. 페이지 테이블은 프로세스 별 자료구조이므로 페이지 테이블에 대한 포인터는 각 프로세스의 PCB에 다른 레지스터 값과 함께 저장된다. CPU 스케줄러가 실행할 프로세스를 선택하면 사용자 레지스터를 다시 적재하고 저장된 사용자 페이지 테이블로부터 적절한 하드웨어 페이지 테이블 값을 다시 적재해야한다. ++페이지 테이블의 하드웨어 구현은 여러가지 방법으로 수행할 수 있다. 페이지 테이블은 전용 고속 하드웨어 레지스터 세트로 구현되므로 페이지 주소 변환이 매우 효율적이다. 그러나 ..

카테고리 없음 2020.06.10

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

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

728x90
반응형