퀴즈로 학습하는 운영체제와 정보기술의 원리
3장 메모리 및 입출력 장치를 제어하는 하드웨어 장치는 무엇인가? 컨트롤러라는 하드웨어 장치가 메모리 및 입출력 장치를 제어한다. 마치 입출력 장치마다 작은 CPU가 있다고 생각하면 편하다. 운영체제 코드 중 메모리에 올려지는 중요한 코드는 무엇이라고 하는가 운영체제의 모든 코드를 메모리에 올리면 자원 낭비가 생긴다. 운영체제 중 주요 코
3장 메모리 및 입출력 장치를 제어하는 하드웨어 장치는 무엇인가? 컨트롤러라는 하드웨어 장치가 메모리 및 입출력 장치를 제어한다. 마치 입출력 장치마다 작은 CPU가 있다고 생각하면 편하다. 운영체제 코드 중 메모리에 올려지는 중요한 코드는 무엇이라고 하는가 운영체제의 모든 코드를 메모리에 올리면 자원 낭비가 생긴다. 운영체제 중 주요 코
목차1주차프로세스와 스레드의 차이쓰레드의 동기화 이슈교착 상태와 기아 상태메모리 계층 2주차메모리 할당 방식메모리 단편화메모리 할당 알고리즘가상 메모리요구 페이징페이지 교체 알고리즘 3주차페이징세그멘테이션상호배제 방식뮤텍스세마포어 4주차PCB와 프로세스 컨텍스트컨텍스트 스위칭사용자 수준 스레드 vs 커널 수준 스레드fork와 vfork의 차이점 5주차Rac
부팅컴퓨터를 켜서 동작시키는 절차. 부트 프로그램운영체제 커널을 저장소에서 특정 주소의 물리 메모리에 복사하고, 커널의 처음 실행 위치로 PC를 가져다 놓음ROM : 꺼져도 내용이 기억되는 특별한 RAM 바이오스를 메모리에 올리고 바이오스가 컴퓨터 초기화 저장매체의 MBR(master boot record)에 가서 부트 로더를 메모리로 가져옴부트 로더
파일 시스템운영체제가 저장매체에 파일을 쓰기 위한 자료구조, 알고리즘 파일 시스템은 왜 만들어졌을까? 비트 단위로 주소를 매겨서 사용하기에는 너무 비효율적!그렇다고 블록 단위(4kb)로 하자니 사용자가 각 블록의 고유번호로 관리하기 힘듬…그래서 추상적(논리적) 객체를 도입 : 파일사용자는 파일 단위로 다루고, 각 파일은 블록 단위로 관리하자! ~ 저장
가상 메모리실제 각 프로세스마다 충분한 메모리를 할당하기에는 메모리 크기가 한계가 있음.(리눅스는 하나의 프로세스가 4기가를 차지함) 적은 메모리에서 여러 프로세스를 다루기 위해 등장한 개념이 가상 메모리! cpu가 한 프로세스의 모든 영역을 사용하지는 않는다,프로세스가 모두 4기가 씩을 부여 받더라도, 정작 사용하는 공간은 제한적이다.사용할 영역만 R
ThreadLigth Weight Process라고도 하는 데, 프로세스와 비슷하지만 프로세스보다 가벼운 존재다. 프로세스 : 프로세스끼리는 서로 데이터에 접근 불가스레드 : - 하나의 프로세스 안에서 여러 스레드 생성 가능 - 스레드들은 동시에 실행 가능 - 프로세스 안에 있으므로 해당 프로세스 데이터를 모두 접근 가능 쓰레드는 어떤 프
프로세스 구조프로세스 구조는 4가지 영역으로 나뉜다. 스택 : 최상단 스택 주소를 가리키는 EBP, 함수 결과를 반환해줄 주소(return address), 함수와 관련된 인자나 변수를 저장하는 영역 힙 : 동적으로 할당된 메모리를 저장하는 영역. (ex. malloc) 이 영역의 메모리 주소를 통해 힙에 저장된 내용을 다른 영역에서 사용! 데이터 : 선
선점형 스케쥴러하나의 프로세스가 다른 프로세스 대신에 프로세서(cpu)를 차지할 수 있다!어떤 프로세스가 running 중에 스케쥴러가 이를 중단시키고, 다른 프로세스로 교체가능! 비선점형 스케쥴러하나의 프로세스가 끝나지 않으면 다른 프로세스는 cpu 사용할 수 없음…자발적으로 wait으로 되거나, 혹은 실행이 끝났을 때만 다른 프로세스로 교체 가능!즉 c
멀티 프로그래밍과 waitwait : 프로세스가 실행 중임에도 불구하고 cpu를 사용하지 않고 기다리는 시간멀티 프로그래밍은 wait 때문에 발생하는 비효율을 줄이는 스케쥴링 알고리즘!그렇다면 이렇게 효율적으로 하기 위해서는 어떻게 해야할까?어떤 시점에 어떤 프로세스를 실행시켜야 될지 판단해야 하는데.. 이때 중요한게 프로세스 상태다!프로세스 상태 run
프로세스란?메모리에 올려져 실행 중인 프로그램은 프로세스라고 한다.프로세스는 작업, task, job과 혼용되어 사용한다. 하지만 응용프로그램 != 프로세스다.왜냐면, 한 응용프로그램에 여러 개의 프로세스로 이뤄져있을 수 있기 때문! 스케쥴러스케줄러는 프로세스 실행을 관리하는 녀석. RTOS(RealTime OS) 응용 프로그램 실시간 성능 보장
프로세스 스케줄링배치 처리배치 처리는 어플리케이션을 순차적으로 처리하는 방식이다. 마치 큐처럼 FIFO방식을 준수한다. 단점어떤 프로그램은 실행이 너무 오래 걸려서, 다른 프로그램이 실행될 때까지 많이 기다려야 하는 경우가 존재.동시에 여러 작업이 불가능하다.(동시성)여러 사용자가 한 컴퓨터를 사용할 때 비효율적이다.(다중 사용자 지원) 이런 단점을 극
응용 프로그램, 운영체제, 컴퓨터 하드웨어 관계 운영체제는 프로그램이 요청하는 메모리를 허가, 분배 운영체제는 프로그램이 요청하는 CPU시간 제공 운영체제는 프로그램이 요청하는 IO device 사용을 허가 제어 사용자 - 응용 프로그램 - 운영체제 - 하드웨어 이런 식으로 연결된다고 보자! 운영체제는 사용자 인터페이스를 제공한다. 쉘(Shell) 사
1950년대ENIAC: 첫번째 컴퓨터.응용 프로그램 돌리기도 바빠 운영체제가 없었음. 응용 컴퓨터가 리소스를 관리. 1960년대 초반 프로그램 종류도 많아지고, 사용자도 늘기 시작. 배치 처리 시스템의 출현(batch processing system) 여러 응용 프로그램을 등록시켜놓으면, 순차적으로 실행시키는 시스템 두 프로그램의 순서를 일직선으로 실행.
응용 프로그램?응용 프로그램은 우리가 흔히 사용하는 엑셀이나 크롬같은 소프트웨어를 말한다.(그렇다고 모든 소프트웨어가 응용 프로그램인건 아니다. 우리가 공부하고 있는 운영체제도 소프트웨어 중 하나다.)즉 응용 프로그램은 소프트웨어 중 운영체제를 제외한 모든 소프트웨어를 의미한다. 운영체제와 응용 프로그램 간의 관계 운영체제는 응용 프로그램을 관리한다.응용프
운영체제 역할1: 시스템 자원(System Resource) 관리자 operating system 혹은 os라고 부름 시스템 자원 = 컴퓨터 하드웨어cpu(중앙처리장치), 메모리(dram, ram)IO devices (monitor, mouse, keyboard, network…)저장매체: SSD, HDD 컴퓨터의 하드웨어는 혼자서 뭘 혼자 하