본문 바로가기

728x90
반응형

운영체제

(2) 리눅스(Ubuntu 20.04) 환경에서 코딩하기, vscode 설치 0. install vscode (2024.02 수정) 사실 요즘은 vi 에디터보다는 그냥 vscode를 설치하여 코딩을 진행한다. ubuntu 상에서의 vscode 설치 방법은 간단하다. VS code에 필요한 패키지 설치, wget에서 Microsoft GPG 키 가져오기, VS code 저장소 추가, VS code 설치 및 실행의 순서다. 터미널 창에 순차적으로 입력하면 vscode가 설치된다. sudo apt update sudo apt install software-properties-common apt-transport-https wget wget -q https://packages.microsoft.com/keys/microsoft.asc -O- | sudo apt-key add - sudo.. 더보기
운영체제(12) Kernel Mode Programming & Device drive 1. Kernel mode and User mode (1) LMSW, SMSW : 현재 프로세서의 머신 상태 워드(machine status word)를 로드/ 저장. (2) MOV DBn, MOV CRn : 디버그 레지스터/ 컨트롤 레지스터를 이동. (3) LSL : 세그먼트 제한값(segment LImit)을 로드. (4) HLT : Halt, 프로세서를 중지. 실행 시 프로세서는 멈추고 대기 상태가 된다. -> 메모리의 모든 위치에 액세스, 수정할 수 있다. -> CPU 및 장치의 모든 레지스터에 액세스하고 수정할 수 있다. -> OS 커널 명령은 커널 모드에서 실행된다. -> CPU는 제한된 명령 집합을 사용한다. -> CPU는 (프로그램을 실행하는) 프로세스에 할당된 메모리 구역만 수정할 수 있.. 더보기
운영체제(11) Device Management 이 단원은 device driver, polling와 I/O interrupt 그리고 DMA를 확실히 알고 넘어가자 ! 1. Input/Output Devices input, output device에 관하여.. (1) 데이터 세분성 : Byte vs Block 일부 장치는 한 번에 단일 바이트(ex, 키보드)를 제공한다. 전체 블록(ex, 디스크나 네트워크 등)을 제공하는 기업도 존재한다. (2) 액세스 패턴 : Sequentail vs Random 일부 장치는 순자척으로 액세스해야 한다. (ex, tape) 다른 장치는 임의로 액세스할 수 있다. (ex, 디스크, CD 등) -> 전송을 시작하기 위한 고정 오버헤드 : 지속적인 모니터링이 필요한 장치 존재, ~~ (3) 전송 매커니즘 : Program.. 더보기
운영체제(10) Storage(File) Management 1. File File : 데이터를 영구적으로 저장하고 유지할 수 있는 중요한 개념이다. Contiguous logical address space, 영구 저장 장치. Name : 사용자가 읽을 수 있는 형식으로 보관된 정보만 제공된다. Type : 다양한 유형을 지원하는 시스템에 필요하다. Location : device의 파일 위치에 대한 포인터. Size : 현재 파일 크기. Protection : 읽기, 쓰기, 실행을 수행할 수 있는 사용자를 제어한다. Time, data and user identification : 보호, 보안 및 사용 모니터링을 위한 데이터 -> file에 대한 정보는 디스크에 유지되는 디렉토리 구조에 보관된다. (1) ls -la : 디렉토리(폴더) 내의 파일과 디렉토리를 .. 더보기
운영체제(9) Virtual memory 1. Review (1) virtual memory management를 하는 이유? locality(지역성) 때문에. 한정된 메모리의 효율적인 사용 구현의 효율성(overhead가 안 생기게 등) (2) Paiging : virtual memory와 physical memory의 size를 같게 해서 효율적으로 관리하는 기법. (3) Thread of control 모든 프로그램이 무조건 main memory에 올라올 필요는 없다. (물론 main memory에 올라와야만 수행된다.) 그러므로 program 중 일부만 main memory에 올리자. (4) single CPU에서 multitasking을 하는 이유는? I/O에 시간을 많이 사용하기 위해. 2. Hardware and Control St.. 더보기
운영체제(8) Main memory 1. Memory manager -> Minimize executable memory access time(실행 가능한 메모리 엑세스 시간 최소화) -> Maximize executable memory size(실행 메모리 크기 최대화) -> Executable memory must be cost-effective(메모리는 비용 효율적이어야 함) 더보기
운영체제(7) Deadlock 1. Define Dependencies [프로세스들이 Lock을 얻기 위해 요청한] 자원들의 의존성 관계. 즉 프로세스가 어떤 자원을 요청할 때 그 자원이 이미 다른 프로세스에 의해 사용 중이라면, 해당 프로세스는 그 자원을 사용하기 위해 먼저 그 자원을 소유한 프로세스가 완료될 때까지 대기한다. -> 이러한 의존성 관계들이 꼬이게 되면 데드락이 발생할 수 있다. -> 프로세스 A, B가 각각 자원 X와 Y를 요청하고 A는 X를, B는 Y를 소유하고 있다면 서로의 자원을 사용하기 위해 두 프로세스 모두 대기하는 상황이 발생한다. -> OS에서는 데드락을 예방하기 위해 Lock을 얻는 순서나 우선순위를 지정, Lock 강제 해제 등을 할 수 있다. 2. Deadlock (system resource를 경.. 더보기
운영체제(6) Synchronization Tools & Examples 1. 용어 정리 여러 CPU가 공유자원에 접근할 때 프로세스 또는 스레드가 동시에 엑세스하지 않도록 하기 위해, 동시성 제어와 데이터 무결성을 보장하기 위해, 다른 프로세스 또는 스레드가 해당 데이터를 변경할 수 없는 상태로 보호하는 연산이다. -> 특정 시기, critical section 시기에는 오직 1개의 스레드만 관여한다. -> 하나 이상의 명령 시퀀스로 구현된 기능 또는 동작이다. 즉, 다른 프로세스는 중간 상태를 보거나 작업을 중단할 수 없다. -> 명령 시퀀스는 그룹으로 실행 or 전혀 실행되지 않으며 시스템 상태에 가시적인 영향을 미치지 않는다. -> good 출처 : https://eunjinii.tistory.com/160 공유 자원에 대한 권한이 필요하고 다른 프로세스가 해당 sec.. 더보기

728x90
반응형